Git rebase仍然显示合并提交

时间:2018-08-30 07:33:28

标签: git

给出这两个分支:

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

2 个答案:

答案 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

现在要解决您的问题。

您应该按照以下步骤合并您的工作。

  • 完成newfeature分支上的工作并进行提交
  • 结帐以掌握
  • 进行git pull的主操作,并与远程服务器同步。
  • 现在在本地或远程服务器上执行git merge,如果您使用的是gitlab,则有一个合并请求UI,它非常有用并且易于使用。
  • 如果您在本地执行此操作,则提交更改,然后将其推送。