git pull 冲突时

git pull 会将origin中的更新merge 到本地。但是存在冲突的情况:

1、如果本地修改 a.txt 未 commit 时,而其他人也修改了a.txt 并已push到origin。那么 pull会失败。提示要求将你本地的 a.txt 的修改 commit 之后才可以 pull 。

2、如果本地修改了 a.txt ,而其他人没有修改 a.txt,修改的是其他的文件,那么可以不commit  a.txt的修改的情况下进行pull。

3、当本地修改了 a.txt ,其他人也修改了a.txt ,还修改了 b.txt 和 c.txt 。那么你commit a.txt 之后,想要push 到origin 会失败,因为其他人的修改提前push到了远端,但你没有把他们pull下来,所以必须先pull,然后再push 。但是由于你修改了a.txt ,其他人也修改了 a.txt(并且改动了相同行),所以会冲突,于是在你执行pull 后,会提示有“ both modified ”,就是两人同时修改了文件,有冲突,请解决冲突之后才可以 push 。于是你编辑 a.txt 处理掉了冲突,但是注意,当你 git status 的时候,会有一个很奇怪的现象,就是你其实只是修改了 a.txt ,但是status显示你也修改了  b.txt 和 c.txt ,而这2个文件是别人已经提交了的。其实无妨,你无视,然后commit 之后,你看日志你的最后一次commit 去找,其实并不会显示你修改了 b.txt 和 c.txt 。至于为什么会要显示成那样,让人有种错觉,我也不清楚。请高手解答。

猜你喜欢

转载自kangzye.iteye.com/blog/2263201