我怎样才能压缩 git 中的提交?

我怎样才能压缩 git 中的提交?

我想简单地压缩一堆不再需要的 git 提交。我尝试按照以下文档操作:本网站,但 git 最终说没有东西可以压缩。我只有一个分支,所以我按照那一节操作。有什么想法吗?

答案1

如果是我的话,我会使用“rebase”。假设你已经签出了你的分支,并且它是从 master 分支出来的,那么

git rebase -i master

这将允许您修改从 master 到当前分支的提交。对于您的情况,请将其替换picks(for squash) 或f(for fixup,这是一个压缩,会删除压缩提交的提交消息)。保存并退出(Vim 中的 ZZ),然后 rebase 将发挥其魔力。Rebase 是一种更通用的解决方案,因为您可以在同一操作中删除、重新排序和重新编写提交。

变基设置将在 Vim 中打开,或者在EDITOR环境变量中设置的任何编辑器中打开。在 Vim 中,导航到要压缩的提交所在行的开头(使用箭头键或鼠标),cw删除pick并进入插入模式,f进行修复或s压缩,然后ZZ保存并退出。


顺便提一下,您给出的链接建议将您的功能分支压缩为单个提交。在我看来,这是一个糟糕的想法。提交应该代表一组有意义的更改。分支是代表一项功能的这些更改的集合。将所有内容压缩为一个巨大的提交意味着其他开发人员将更难跟进您的更改。

相关内容