Git rebase仍显示合并提交

问题描述 投票:2回答:2

鉴于这两个分支:

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
git
2个回答
2
投票

修复合并问题

你应该在做rebase之前拉master分支。

否则,您的rebase中可能会有一些未被考虑的更改,并且它们将被合并。

更重要的是,在这种情况下你的rebase没有任何效果,因为myfeature分支已经在你从原点撤出的最新变化之上。

创建分支后:

git checkout master
git pull origin master
git rebase -i master myfeature
git checkout master
git merge myfeature

其他评论

  • 不要在你的rebase之前推动myfeature分支。否则,您将最终在本地和远程分支之间拥有不同的历史记录。

This answer有进一步的迹象。


0
投票

如果我理解正确,您希望在完成任务后将myfeature分支合并到master。您应该使用git merge而不是git rebase直接完成

强烈建议不要使用git rebase,因为它会覆盖git历史记录。您可以阅读有关差异以及如何使用它的更多信息以及为什么不在this article中使用git rebase

现在来解决你的问题。

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

  • 完成新功能分支的工作并进行提交
  • 结帐以掌握
  • 做一个git pull的主和与远程服务器同步。
  • 现在在本地或远程服务器上执行git merge,如果您使用的是gitlab,则有一个非常有用且易于使用的合并请求UI。
  • 如果您在本地执行此操作然后提交更改,然后推送它。
© www.soinside.com 2019 - 2024. All rights reserved.