Git Extensions:壁球提交?

Sla*_*ion 20 git git-extensions

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

git reset --soft HEAD~<number of commits to squash> && git commit
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否有一个很好的方法可以在一个像git扩展这样的好git客户端中做到这一点?如果您可以选择连续提交并压缩它们会很酷.

Rus*_*Kie 34

您可以轻松地在GE中执行此操作:

  1. 混合重置到您想要压缩的提交
  2. 您需要的阶段和提交文件
  3. DONE

如何压扁: 在此输入图像描述

  • 很好的答案,非常有帮助.如果可能的话,放慢一点动画gif会是一个好主意... ;-) (8认同)
  • *软*重置更多是要求;) (2认同)
  • 1. 右键单击​​要压缩到的提交并选择“将当前分支重置到此处” 2. 选择“软重置”(保留暂存文件)或“混合重置”(取消暂存所有文件) 3. 暂存,如果必要的 4. 提交 (2认同)

use*_*406 14

以下是已接受答案的减速版本:

这是接受的答案的减速版本

  • 用于暂停 gif 的 Chrome 扩展:https://superuser.com/a/1435047/930939 (2认同)

Bof*_*ain 8

(假设您使用的是 Windows)

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

组合多个提交上下文菜单

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

修改最后一次提交

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

作为额外的好处,在资源管理器中浏览您的工作副本时,您将获得覆盖图标的好处。

资源管理器图标

  • 这比 git 扩展更容易 (2认同)

Phi*_*ppe 7

你可以通过2种方式使用GitExtensions轻松实现这一目标.

第一种是完全相同的事情,但是当你不想使用你所观看的提交的现有提交消息时,从GUI适用..

 git reset --soft HEAD~<number of commits to squash>
Run Code Online (Sandbox Code Playgroud)

在GitExtensions的历史浏览器中,右键单击要保留的最后一次提交,然后选择"将分支重置为此处".然后选择"软"选项.

 git commit
Run Code Online (Sandbox Code Playgroud)

然后提交仍处于暂存状态的更改.

所述第二是将"变基--interactive":

右键单击上面描述的相同提交,然后选择'rebase on'.在弹出窗口中选中"交互式"复选框.

然后,在编辑器中,将提交操作设置为"squash".在执行之前,请阅读有关交互式rebase的详细文档.当您想要编写一个良好的提交消息时,此解决方案是完美的,该提交消息是根据您正在压缩的提交的提交消息构建的.