当我试图将我的开发分支与主分支同步时,我遇到了一个问题,现在我正试图了解发生了什么。主要的问题是,我尝试了两种方法,每种方法都有不同的结果。
在签出到我的开发分支之后,我使用了命令"git merge branch /master“。我得到了一些git冲突并修复了它们。几分钟后,我尝试使用以下命令重新同步分支:
1. git checkout master
2. git pull
3. git checkout dev_branch
4. git pull
5. git merge master使用这些命令后,我得到了其他git冲突(在不同的文件上),但与前面的不同。
为什么我会得到不同的冲突?我必须再一次提到,我在很短的一段时间后重新同步了分支,并且我非常确定在此期间远程主机没有得到任何更新。这两种方法有什么区别吗?如果是,是什么?
发布于 2019-06-11 20:53:15
您的本地origin/master可能不是最新的。
git pull的一个(预期的)效果是更新origin/master。
您可以通过查看本地dev_branch的历史来确认这一点:
如果您查看分支的历史记录(使用git-kraken,或gitg,或gitk,或git log --graph --oneline),您应该会看到两个不同的合并:
* (dev_branch) Merge branch 'master' into dev_branch # <- merge2
|\
| * (master, origin/master) commit aaa # <- aaa
| |
...
|
* | Merge banch 'origin/master' into dev_branch # <- merge1
|\ /
| * commit bbb # <- bbb
| |
...bbb是第一次合并时本地origin/master的状态,aaa是git pull之后的主状态(它可能与origin/master相同)。
另一种可能是您本地的master分支与origin/master不同。
https://stackoverflow.com/questions/56542922
复制相似问题