在尝试将一个分支“feature_1”合并到另一个分支“release_1”时,我收到了“已经是最新”的消息,这些消息不止一次地在合并之间将更改提交到feature_1。也就是说,我有类似的东西:
# Developer 1: create feature_1 branch with initial commit
git checkout -b feature_1 origin/master
git commit -am "Initial commit."
git push origin feature_1
# Developer 2: create release_1 branch and merge feature_1 into it
git checkout -b release_1 origin/master
git merge origin/feature_1
# success
git push origin release_1
# Developer 1: make change to feature_1
git checkout feature_1
git commit -am "Fixed issue."
git push origin feature_1
# Developer 2: attempt to get latest state of feature_1 merged into release_1
git checkout release_1
git merge origin/feature_1
Already up-to-date
通过阅读相关问题(Git merge reports "Already up-to-date" though there is a difference和Git merge confusion. Diff shows differences, and merge says there are none),我了解到这表明feature_1是release_1的祖先。我还没有找到的是如何将feature_1中的最新提交合并/快进到第二次发布_1。
根据上面链接的第一个问题中的评论,我在release_1中尝试了以下内容:
git reset --hard origin/feature_1
这实质上重置了release_1,因此它与feature_1的最新状态相同,而不是将两个分支的最新状态合并在一起,所以这不是我正在寻找的。 p>
如果feature_1是release_1的祖先,如何将feature_1中的最新提交合并到release_1?我认为'git merge'会快速前进。我想知道我是否错过了'git pull'或者其他东西而且快进没有看到关于原点的最新提交。或者,如果还有其他命令/步骤,我还没有找到。基本上,我使用正确的方法,我只是缺少一些东西(或者msysgit有bug)或者我是否完全使用了错误的方法?
感谢您的帮助。
答案 0 :(得分:2)
开发者2需要在git pull
上执行fetch
或feature_1
。就他的存储库而言,feature_1
自上次合并以来没有发生过变化。