我很难尝试压制这些过多的提交。
当我运行git log --pretty=oneline
时,以下顺序会显示以下项目:
e44e012 Merge branch 'branch A' of https://github.com/ into branch A
4176991 Commit D
767583f Commit C
f5a4c21 Commit B
83bb8e1 Commit A
我想将这些压缩成一个提交并摆脱提交合并。当我运行git rebase -i HEAD~2
时,会出现提交A-D,但提交合并不会显示。知道为什么吗?当我尝试运行git rebase -i HEAD~5
时,我会提交A-D以及其他一些提交,但合并提交仍然不会显示为压缩选项。
* e44e012 Merge branch 'Branch A' of https://github.com/ into Branch A
|\
| * 767583f Commit C
| * f5a4c21 Commit B
| * 83bb8e1 Commit A
* | 4176991 Commit D
|/
答案 0 :(得分:1)
键入git rebase -i HEAD~5
会显示如下列表:
pick 83bb8e1 Commit A
pick f5a4c21 Commit B
pick 767583f Commit C
pick 4176991 Commit D
pick e44e012 Merge branch 'branch A' of https://github.com/ into branch A
请注意,最旧的提交将显示在列表的 top 中,这与git log
向您显示的顺序相反。
如果要将合并提交压缩,并将提交B到D提交到提交A,则将文件更改为如下所示:
pick 83bb8e1 Commit A
squash f5a4c21 Commit B
squash 767583f Commit C
squash 4176991 Commit D
squash e44e012 Merge branch 'branch A' of https://github.com/ into branch A
保存文件,关闭它,然后键入git rebase --continue
以完成变基。