如何自动压缩大量提交?
How to squash a lot of commits automatically?
我有很多提交,我想将它们压缩成一个提交。当然,我可以将每次提交的 pick
替换为 squash
,但我有数百次提交。
有没有办法自动执行此操作?
如果您有一系列提交
... - C1 - C2 - C3 - C4 - C5 <- HEAD
并且您想将 C2
压缩到 C5
到单个提交中,您可以将分支重置为 C1
,同时保持工作目录和暂存区的状态,ans然后再次提交:
git reset --soft C1
git commit
这将要求您重新输入提交信息。您当然可以在重置之前使用 git log
并复制要保留的提交消息部分。
如果你想将一个功能分支压缩成 master
分支之上的单个提交,另一种选择是使用 --squash
选项到 git merge
。
我有很多提交,我想将它们压缩成一个提交。当然,我可以将每次提交的 pick
替换为 squash
,但我有数百次提交。
有没有办法自动执行此操作?
如果您有一系列提交
... - C1 - C2 - C3 - C4 - C5 <- HEAD
并且您想将 C2
压缩到 C5
到单个提交中,您可以将分支重置为 C1
,同时保持工作目录和暂存区的状态,ans然后再次提交:
git reset --soft C1
git commit
这将要求您重新输入提交信息。您当然可以在重置之前使用 git log
并复制要保留的提交消息部分。
如果你想将一个功能分支压缩成 master
分支之上的单个提交,另一种选择是使用 --squash
选项到 git merge
。