鉴于这两个分支:
master
myfeature
当我完成myfeature
时,我就像master
那样重新加入:
git rebase -i master
现在将它合并到master:
git checkout master
git merge myfeature
git push origin master
在检查主人之后,有些工作已被其他人合并。
如果我在合并前拉
git checkout master
git pull origin master
git merge myfeature
git push origin master
它不断显示日志中的合并提交。
即使分支被重新定位,我还需要在合并之前拉大师吗?在这种情况下如何摆脱合并提交?
注意git配置为:pull.rebase=true
我的完整工作流程是:
git pull origin master
git checkout -b myfeature
git add .
git commmit -m "myfeature"
git push origin myfeature
git rebase -i master
git checkout master
git pull origin master # ??
git merge myfeature
git push origin master
git branch -d myfeature
git push origin --delete myfeature
你应该在做rebase之前拉master
分支。
否则,您的rebase中可能会有一些未被考虑的更改,并且它们将被合并。
更重要的是,在这种情况下你的rebase没有任何效果,因为myfeature
分支已经在你从原点撤出的最新变化之上。
创建分支后:
git checkout master
git pull origin master
git rebase -i master myfeature
git checkout master
git merge myfeature
myfeature
分支。否则,您将最终在本地和远程分支之间拥有不同的历史记录。This answer有进一步的迹象。
如果我理解正确,您希望在完成任务后将myfeature分支合并到master。您应该使用git merge
而不是git rebase
直接完成
强烈建议不要使用git rebase,因为它会覆盖git历史记录。您可以阅读有关差异以及如何使用它的更多信息以及为什么不在this article中使用git rebase
现在来解决你的问题。
您应该按照以下步骤合并您的工作。
git pull
的主和与远程服务器同步。git merge
,如果您使用的是gitlab,则有一个非常有用且易于使用的合并请求UI。