我们可以使用 rebase 将多个提交压缩为同一个分支上的一个提交吗?
举个例子,我创建了两个主题分支——来自 master 的 issueA_1 和 issueA_2。我在两个分支中都进行了几次提交,如图所示(为简洁起见,我在这里使用提交名称而不是提交哈希):
--> (issueA_1) - commitX1
/
(master)--
\
--> (issueA_2)
|
commitY1
|
commitY2
然后我做:
git checkout issueA_2
git rebase -i issueA_1
我将 rebase 文件更改为:
pick commitY1
fixup commitY2
在这个 rebase 之后,提交历史看起来像这样:
--> (issueA_1) - commitX1
/
(master)--
\
--> (issueA_2)
|
commitX1
|
commitY1
|
commitY2
我不再需要分支 issueA_1,所以我需要:
git branch -D issueA_1
issueA_2 的提交历史还不足以 merge 到 master 中。在我 merge 到 master 之前,我希望这个分支的 commitX1、commitY1 和 commitY2 被压缩成一个单一的提交。这可能吗?
最佳答案
是的,我发现最简单的方法是:
git rebase -i HEAD~3
这将让您查看最后 3 次提交,然后您可以压缩它们。
关于git - rebase 以压缩同一分支上的多个提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25323878/