使用 SourceTree 进行合并变基后,有事就会出现 落后 N个版本,超前 N 个版本。
然后需要先 git pull
,才能继续操作。 git pull
的时候会经常性的冲突。
一致不明白这个既落后又超前具体是怎么形成的,是什么意思。
希望大神指点!
使用 SourceTree 进行合并变基后,有事就会出现 落后 N个版本,超前 N 个版本。
然后需要先 git pull
,才能继续操作。 git pull
的时候会经常性的冲突。
一致不明白这个既落后又超前具体是怎么形成的,是什么意思。
希望大神指点!
我也用SourceTree ,个人认为:这种情况是你的项目里有些文件跟远程分支不一致,例如项目里有A,B,C三个文件,你和你同事共同开发,A文件你修改了,就是超前咯,当B文件被人修改后再提交到远程分支,这样就是你本地的B文件落后咯,C文件大家都没改过,所以没变动
5 回答2.9k 阅读
3 回答2.7k 阅读
3 回答1k 阅读
2 回答410 阅读✓ 已解决
459 阅读
很好解释。假如现在有一个项目,
master
branch 有三个 commit,分别是 A,B,C:你在这时候新建了一个 branch (tracking master branch),叫
myBranch
,然后写了代码并提交,这时候你的 branch 是这样:在这期间,你的同事在
master
上也写了代码并提交,这时候master
变成:那么现在,你的
myBranch
就是既 behind 又 ahead 了。顺便,这时候如果你在
myBranch
上执行git rebase origin/master
命令,那么myBranch
就会是:注意
X'
和X
的 "实际作用" 相同,但 hash 不同如果你在
myBranch
上执行git pull origin master
命令,那么myBranch
就会是:其中,E 是一个 merge commit。也就是把当前
master
的 HEAD 加到myBranch
你还有一个选择,就是
git cherry-pick D
,那么你的myBranch
就会是:注意
D'
和D
的 "实际作用" 相同,但 hash 不同..而且D'
不是一个 merge commit。