要压缩多次提交,我一直使用:
git reset --soft HEAD~<number of commits to squash> && git commit
但我想知道是否有一个很好的方法可以在git扩展程序这样的git客户端中执行此操作?如果您可以选择连续提交并压缩它们将会很酷。
答案 0 :(得分:28)
答案 1 :(得分:7)
你可以通过GitExtensions轻松实现这两种方式。
第一个是完全相同的事情,但是当你不想使用你观看的提交的现有提交消息时,GUI适用。
git reset --soft HEAD~<number of commits to squash>
在GitExtensions的历史浏览器中,右键单击要保留的上一次提交,然后选择'将分支重置为此处'。然后选择'soft'选项。
git commit
然后提交仍在上演的更改。
第二是'rebase --interactive':
右键单击上述相同的提交,然后选择'rebase on'。在弹出窗口中选中“交互式”复选框。
然后,在编辑器中,将提交操作设置为“squash”。在执行之前,请阅读有关交互式rebase的详细文档。当您想要编写一个良好的提交消息时,此解决方案是完美的,该提交消息是根据您正在压缩的提交的提交消息构建的。
答案 2 :(得分:7)
答案 3 :(得分:4)
(假设您正在使用Windows)
是的,我相信TortoiseGit可以做到。作为TortoiseSVN的先前用户,我会推荐它。查看提交日志时,您可以执行以下操作:
此外,当您使用TortoiseGit提交时,您可以选择修改之前的提交,这样您就可以随时执行此操作。当你这样做时它也会提取最后一次提交消息(我在屏幕截图中出于隐私原因清除了我的消息)。
当然,我确定你已经知道这一点,但是不要试图合并或修改已经推送到远程的提交,否则你的下一次推送将会失败。
作为额外奖励,您可以在资源管理器中浏览工作副本时获得叠加图标的好处。