我的代码库中存在这种情况。
我们创建了一个分支,但是,我们错误地将master合并到了几次(这导致了一些快速合并)。现在我们在分支中完成了一系列提交,并且在分支生命期间的某个时刻合并了代码(虽然只有一周的时间)。
如何删除快进并保留我们在分支中提交的提交?
我在考虑这样做。
从我创建另一个分支的提交中创建一个全新的分支,然后列出在上一个分支中进行的所有提交:
git rev-list BRANCH_NAME ^master
然后将该命令列出的提交选入新分支
git cherry-pick be530cec7748e037c665bd5a585e6d9ce12bc8bc
这是正确的方法吗?我担心我也可能获得快进(虽然显然没有创建提交)。
我对Git很新,所以我很感激任何建议!
谢谢! 罗伯特
答案 0 :(得分:1)
我建议使用互动式基础。
$ git rebase -i lastKnownGoodCommitHash
您需要手动选择要保留的提交。
要删除一个,你可以简单地删除包含其哈希的行(当你开始这个过程时,这将变得明显。)
有一篇关于github的文章更深入地解释了它: https://help.github.com/articles/interactive-rebase