1

git冲突出现的原因及解决方案

 2 years ago
source link: https://jelly.jd.com/article/61614de52685d0019947a68d
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
JELLY | git冲突出现的原因及解决方案
git冲突出现的原因及解决方案
上传日期:2021.10.09
简单来说就是本地修改的文件和目标远程库的同一个文件都有修改。这时无论是pull、push、merge时都会产生冲突。

Git冲突情况举例:

1.不同分支下的merge

比如在不同分支下进行分支合并时,我们在本地修改了a文件并把a文件的修改push到了test分支下,接着我们切换到master分支下将test分支上的修改合并到当前master分支下时,如果master分支下的a文件也有修改的话,这时在进行merge也会产生冲突。(因为这个两个分支是不同步的,两个分支下的同一个文件都有修改)

2.同一个分支下的pull或push

比如在同一个分支下,对本地的a文件做出了修改,此时我们在进行pull或push时如果远程分支下下的a文件也有修改,那么代表本地和远程分支的代码是不同步的,此时也会引起冲突。

Git冲突解决方案:

要想不产生冲突的习惯是:修改文件之前先git pull,获取远程最新的代码,同步完了之后再对代码进行修改;亦或者事先和同时操作代码的同事沟通,这样可以大概率的避免冲突的产生。

方法一(推荐使用):

git pull 出现冲突后丢弃本地冲突文件修改,采用远程文件覆盖本地文件

git checkout [文件路径]

例:git checkout test/src/main/resources/spring-shiro.xml

方法二:

git pull 出现冲突后可以暂存本地修改git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m '注释' 最后git push到远程。

方法三:

1、git pull

更新代码,发现

error: Your local changes to the following files would be overwritten by merge:pom.xml

Please commit your changes or stash them before you merge.

这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。

2、git add pom.xml


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK