【问题标题】:Git branch with ff merges from master - remove ff mergesGit 分支与 ff 合并从 master - 删除 ff 合并
【发布时间】:2013-12-13 01:14:47
【问题描述】:

我们的代码库中有这种情况。

我们创建了一个分支,但错误地将 master 合并了几次(这导致了一些快进合并)。现在,我们在分支中完成了混合提交,并且在分支生命周期中的某个时间点合并了代码(尽管只有一周)。

我怎样才能删除快进并只保留我们在分支中所做的提交?

我正在考虑这样做。

从我创建另一个分支的提交创建一个全新的分支,然后列出在前一个分支中所做的所有提交:

git rev-list BRANCH_NAME ^master

然后将该命令列出的提交挑选到新分支中

git cherry-pick be530cec7748e037c665bd5a585e6d9ce12bc8bc

这是正确的做法吗?我担心我也可能得到快进(但显然没有创建提交)。

我对 Git 还很陌生,所以如果有任何建议,我将不胜感激!

谢谢! 罗伯托

【问题讨论】:

    标签: git merge branch cherry-pick


    【解决方案1】:

    我建议使用交互式变基。

    $ git rebase -i lastKnownGoodCommitHash

    您需要手动选择要保留的提交。

    要删除一个,您可以简单地删除包含其哈希的行(这将在您启动该过程时变得明显)。

    github上有一篇文章更深入地解释它: https://help.github.com/articles/interactive-rebase

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 1970-01-01
      • 2011-07-31
      • 2013-01-14
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多