如何将我最后的 N 次提交 merge 为一次提交?
最佳答案
无需 git rebase
或 git merge --squash
即可相当轻松地完成此操作。在此示例中,我们将压缩最后 3 次提交。
如果你想从头开始写新的提交消息,这就足够了:
git reset --soft HEAD~3 &&
git commit
如果你想开始编辑新的提交消息与现有提交消息的串联(即类似于 pick/squash/squash/…/squash git rebase -i
指令列表从你开始),然后你需要提取这些消息并将它们传递给 git commit
:
git reset --soft HEAD~3 &&
git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"
这两种方法都以相同的方式将最后三个提交压缩为一个新的提交。软重置只是将 HEAD 重新指向您不想压缩的最后一次提交。索引和工作树都没有被软重置触及,使索引处于新提交所需的状态(即它已经具有您将要“丢弃”的提交的所有更改)。
关于git - 我如何将我最后的 N 提交压缩在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189560/