假设我的仓库中有以下历史记录:
git log --oneline
<3rd sha1> Third commit.
<2nd sha1> Second commit.
<1st sha1> First commit.
如何将第三次提交压缩到第一次提交而不保持第二次提交?
答案 0 :(得分:6)
我做到了:
git rebase -i HEAD~3
。编辑:
选择&lt; 2nd sha1&gt;第二次提交。
选择&lt; 1st sha1&gt;第一次提交。
squash&lt; 3rd sha1&gt;第三次提交。
解决了coflict:error: could not apply <2nd sha1>... Second commit.
。
git rebase --continue
。error: could not apply <1nd sha1>... First commit.
。git rebase --continue
。First commit (squashed).
)。然后就完成了。
git log --oneline
:
git log --oneline
<2nd sha1> Second commit.
<1st sha1> First commit (squashed).
我成功地做到了,发生的冲突应该发生并且很容易解决。
我对结果非常满意,但无论如何我想知道是否有更好的方法来实现这一目标。