首先说明一下,我是一名前端开发工程师,用的代码编辑器是vscode,这篇文章主要是讲解一下我在使用git中遇到代码冲突的一些问题。

之前总是搞不懂使用git工具发生代码冲突的原因,而且我老是担心pull代码后,远程的代码会把本地的代码覆盖了,我写的代码要是被覆盖了,那不就完了嘛,所以我在提交代码的时候总是会备份一份,但是这样做也很麻烦,所幸看看git一些基础知识,并且自己在gitee上面建了一个仓库供自己使用。具体流程如下

  1. 首先在gitee或者github上面创建一个仓库

     在gitee上面新建仓库后,会提醒你进行相关的操作,按照提示完成后,会在本地先向远程push推送一个README.md文件,注意此时README.md文件是空的,

  2. 修改远程文件,进行git模拟冲突

    ​ 

    输入非空的内容进行提交后,我们在本地也在相同的文件中进行修改,这样就会产生冲突。使用git产生冲突的条件:如果在远程的某一个文件内容发生修改了,而本地没有进行pull拉取,就会导致本地的分支落后,当修改完成之后push到远程的时候,就会产生冲突,而本地如果进行pull拉取远程文件的话,相等于你现在本地的文件就是远程的文件,不会有分支落后,当修改完push的时候,就不会产生冲突,所以建议使用git的时候,先pull之后,再去修改,修改完成之后再去push。

  3. 在本地修改文件后,push到远程发生冲突了,需要解决
    上面已经分析了产生冲突原因,下面模拟一下冲突,首先我们已经在远程修改了README.md的文件了,先不使用pull命令拉取远程的代码,而是直接在本地修改一下README.md的文件,

     修改文件后,我们可以有以下两种做法:都已经add,commit过了1.直接先pull拉取远程的代码,
    这里的拉取相等于执行git pull命令,需要用到如下插件

     

     合并冲突:三个按钮

     

     

     

     
    我们可以根据需要进行冲突的合并,合并完进行push推送即可。2.如果直接push的话,使用插件push不会出现合并冲突,而是出现如下警告:

    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Integrate the remote changes (e.g.
    hint: 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details. 


     不使用插件,直接执行

    git pull origin master

     需要注意的是origin 后面的分支不一定是master,具体情况具体分析,就可以出现我们pull的时候的界面,

    这个时候直接合并冲突就行了。
     

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐