Git Extensions:壁球提交?

时间:2017-10-13 15:22:47

标签: git git-extensions

要压缩多次提交,我一直使用:

git reset --soft HEAD~<number of commits to squash> && git commit

但我想知道是否有一个很好的方法可以在git扩展程序这样的git客户端中执行此操作?如果您可以选择连续提交并压缩它们将会很酷。

4 个答案:

答案 0 :(得分:28)

您可以在GE中轻松完成:

  1. 将您要压缩的提交混合重置为
  2. 暂存和提交您需要的文件
  3. 完成
  4. 如何压扁: enter image description here

答案 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)

Here is the slowed down version of the accepted answer:

这是已接受答案的放慢版本

答案 3 :(得分:4)

(假设您正在使用Windows)

是的,我相信TortoiseGit可以做到。作为TortoiseSVN的先前用户,我会推荐它。查看提交日志时,您可以执行以下操作:

Combine multiple commits context menu

此外,当您使用TortoiseGit提交时,您可以选择修改之前的提交,这样您就可以随时执行此操作。当你这样做时它也会提取最后一次提交消息(我在屏幕截图中出于隐私原因清除了我的消息)。

Amend last commit

当然,我确定你已经知道这一点,但是不要试图合并或修改已经推送到远程的提交,否则你的下一次推送将会失败。

作为额外奖励,您可以在资源管理器中浏览工作副本时获得叠加图标的好处。

Explorer icons