你可以很容易地做到这一点,无需git rebase
or git merge --squash
。在此示例中,我们将压缩最后 3 个提交。
如果您想从头开始编写新的提交消息,这就足够了:
git reset --soft HEAD~3 &&
git commit
如果您想开始编辑新的提交消息与现有提交消息的串联(即类似于 pick/squash/squash/.../squashgit rebase -i
指令列表将从)开始,然后您需要提取这些消息并将它们传递给git commit
:
git reset --soft HEAD~3 &&
git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"
这两种方法都以相同的方式将最后三个提交压缩为一个新提交。软重置只是将 HEAD 重新指向您不想压缩的最后一次提交。索引和工作树都不会受到软重置的影响,使索引处于新提交所需的状态(即,它已经具有您要“丢弃”的提交的所有更改)。
根据评论进行编辑
您已经重写了该历史记录,您必须使用 --force 标志将该分支推回远程。这就是强制标志的用途,但您可以格外小心,并始终完全定义您的目标。
git push --force origin myBranch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)