假设我的回购中有以下历史记录:
git log --oneline
<3rd sha1> Third commit.
<2nd sha1> Second commit.
<1st sha1> First commit.
我如何将第三个提交压缩到第一个,而第二个不受影响?
假设我的回购中有以下历史记录:
git log --oneline
<3rd sha1> Third commit.
<2nd sha1> Second commit.
<1st sha1> First commit.
我如何将第三个提交压缩到第一个,而第二个不受影响?
我已经这样做了:
git rebase -i HEAD~3
.编辑为:
选择 <2nd sha1> 第二次提交。
选择 <1st sha1> 第一次提交。
squash <3rd sha1> 第三次提交。
解决了冲突: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).
我成功地做到了,发生的冲突应该发生并且很容易解决。
我对结果非常满意,但无论如何我想知道是否有更好的方法来实现这一目标。