给出这两个分支:
master
myfeature
当我完成myfeature
的工作后,便像这样:master
为基础
git rebase -i 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
答案 0 :(得分:2)
您应该在重新设置基准之前拉住master
分支。
否则,您的基准库中可能会忽略一些更改,这些更改将被合并。
此外,在这种情况下,您的重新设置没有任何作用,因为myfeature
分支已经位于您从源进行的最新更改的顶部。
创建分支后:
git checkout master
git pull origin master
git rebase -i master myfeature
git checkout master
git merge myfeature
myfeature
分支。否则,您最终将在本地和远程分支机构之间拥有不同的历史记录。This answer对此有进一步的指示。
答案 1 :(得分:0)
如果我的理解正确,您想在完成任务后将myfeature分支合并到master。您应该直接使用git merge
而不是git rebase
强烈建议不要使用git rebase,因为它会覆盖git历史记录。您可以在this article
中详细了解差异以及如何使用差异以及为什么不使用git rebase现在要解决您的问题。
您应该按照以下步骤合并您的工作。
git pull
的主操作,并与远程服务器同步。git merge
,如果您使用的是gitlab,则有一个合并请求UI,它非常有用并且易于使用。