我们可以使用rebase将多个提交压缩到同一个分支上的一个提交中吗?
举个例子,我创建了两个主题分支 - 来自master的issueA_1和issueA_2.我在两个分支中进行了几次提交,如图中所示(为了简洁,我在这里使用提交名称而不是提交哈希):
--> (issueA_1) - commitX1
/
(master)--
\
--> (issueA_2)
|
commitY1
|
commitY2
Run Code Online (Sandbox Code Playgroud)
然后我做:
git checkout issueA_2
git rebase -i issueA_1
Run Code Online (Sandbox Code Playgroud)
我将rebase文件更改为:
pick commitY1
fixup commitY2
Run Code Online (Sandbox Code Playgroud)
在此rebase之后,提交历史记录如下所示:
--> (issueA_1) - commitX1
/
(master)--
\
--> (issueA_2)
|
commitX1
|
commitY1
|
commitY2
Run Code Online (Sandbox Code Playgroud)
我不再需要分支问题A_1,所以我这样做:
git branch -D issueA_1
Run Code Online (Sandbox Code Playgroud)
issueA_2的提交历史还不足以合并到master中.我希望在合并到master之前将此分支的commitX1,commitY1和commitY2压缩为1个单一提交.这可能吗?
Ili*_*ion 15
是的,我发现最简单的方法是:
git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)
这将让你查看最后3次提交,然后你可以压缩它们.