将第一次和第三次提交压缩(保留第二次未压缩)。

3
假设我在我的仓库中有以下历史记录:
git log --oneline    
<3rd sha1> Third commit.
<2nd sha1> Second commit.
<1st sha1> First commit.

如何将第三次提交压缩到第一次提交中,同时保留第二次提交的内容不变?
1个回答

10

我已经完成了以下操作:

  1. 清理了当前的更改(储藏)。
  2. git rebase -i HEAD~3
  3. 编辑为:

    pick <2nd sha1> 第二次提交。

    pick <1st sha1> 第一次提交。

    squash <3rd sha1> 第三次提交。

  4. 解决冲突:error: could not apply <2nd sha1>... Second commit.

  5. git rebase --continue
  6. 文本编辑器将被激活,显示第二次提交的消息,我保留了它。
  7. 解决冲突:error: could not apply <1nd sha1>... First commit.

  8. git rebase --continue
  9. 文本编辑器将被激活,显示第一次提交的消息,我保留了它。
  10. 文本编辑器将被激活,要求输入合并第一次和第三次提交的提交消息,我输入了一个新消息(First commit (squashed).)。

然后就完成了。

git log --oneline

git log --oneline    
<2nd sha1> Second commit.
<1st sha1> First commit (squashed).

我成功地完成了它,发生的冲突是必须发生的,并且很容易解决。

我对结果感到相当满意,但我想知道是否有更好的方法来实现这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接