2017-10-13 155 views
2

压扁多次提交,我一直使用:Git扩展:Squash提交?

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

但我不知道是否有一个良好的git客户端如Git扩展做到这一点的好办法?如果你可以选择连续的提交并挤压它们,这将是很酷的。

+0

我把它用TortouseGit,非常方便做 – Alexan

回答

4

你可以很容易地通过GitExtensions 2种方式实现这一目标。

第一个是做完全相同的事情,但从GUI适合当你不想使用你观看提交的提交的现有提交消息。 。

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

从GitExtensions的历史浏览器中,右键单击最后一次提交你想保持和选择“重置分支在这里”。然后选择选项'软'

git commit 

然后提交仍在上演的更改。

第二是一个“变基--interactive”:

右击上述相同的提交描述并选择“重订”上。在弹出窗口中选中复选框'interactive'。

然后,在编辑器中,将提交操作设置为“压扁”。在做这件事之前,先阅读一份有关交互式重做的完整文档。这个解决方案是完美的,当你想编写一个很好的提交消息,这个提交消息是根据你正在压缩的提交中的提交消息构建的。

3

(假设你使用的是Windows)

是的,我相信TortoiseGit能做到这一点。作为TortoiseSVN的以前用户,我会推荐它。当查看提交日志,你可以做到以下几点:

Combine multiple commits context menu

此外,当你提交使用TortoiseGit,你必须简单地修改选项以前的承诺,这样你就可以做到这一点当你去时。当你这样做的时候它也会拉入最后的提交信息(我在屏幕截图中为了保护隐私而清除了它)。

Amend last commit

当然,我相信你已经知道这一点,但不要试图合并或修改那些已经被推到远程,或你的下一个推就会失败提交。

作为额外的奖励,您将在Explorer中浏览工作副本时获得覆盖图标的好处。

Explorer icons

5

您可以轻松地做到这一点在GE:

  1. 混合复位的承诺要壁球到
  2. 阶段和提交你需要

文件如何壁球: enter image description here