我一直在寻找一种替代解决方案来压缩分支中的一系列提交。我过去所做的是使用git rebase -i HEAD~<#commits>然后选择哪个提交来压缩。通常我pick编辑了最新的提交,并压缩了中间的冗余提交。
这种方法相当有效,但我希望有更快的方法。我注意到有一个--squash选项git commit。但我不确定这是如何工作的。它究竟有什么作用,你如何使用它?这会是我问题的解决方案吗?
从文档:
--squash=<commit>构建一个提交消息以用于
rebase --autosquash. 提交消息主题行取自带有前缀“squash!”的指定提交。用额外的提交消息的选项(可以使用-m/-c/-C/-F)。有关详细信息,请参阅git-rebase[1]。
--squash(也是--fixup标志)将提交作为参数,并格式化消息以与--autosquash.
可以rebase.autosquash = true在您的配置中进行设置以缩短整个过程。
如果你想压缩你的最后一次N提交:
git reset --soft HEAD~N && git commit
Run Code Online (Sandbox Code Playgroud)
这将把头放在HEAD~N,因此索引和工作目录根本不会改变,这意味着您现在可以使用git commit并为所有更改创建单个提交。
| 归档时间: |
|
| 查看次数: |
589 次 |
| 最近记录: |