[英]Git Extensions: Squash commits?
为了压缩多个提交,我一直使用:
git reset --soft HEAD~<number of commits to squash> && git commit
但是我想知道在像 git extensions 这样的好的 git 客户端中是否有一个很好的方法来做到这一点? 如果您可以选择连续的提交并压缩它们,那就太酷了。
有多种方法可以做壁球。
以下是如何在Git Extensions 中轻松地将当前及其所有直接父提交压缩为单个提交的方法:
这是上面的动画:
另一种方法是进行“交互式变基”
git rebase -i
, 阅读文档),或要在 Git 扩展中进行交互式变基:
这是上面的动画:
(假设您使用的是 Windows)
是的,我相信TortoiseGit可以做到。 作为 TortoiseSVN 的前用户,我会推荐它。 查看提交日志时,您可以执行以下操作:
此外,当您使用 TortoiseGit 提交时,您可以选择简单地修改之前的提交,这样您就可以随时进行。 当您执行此操作时,它还会拉入最后一次提交消息(我在屏幕截图中出于隐私原因清除了我的)。
当然,我相信你已经知道这一点,但不要试图合并或修改已经推送到远程的提交,否则你的下一次推送将失败。
作为一个额外的好处,在资源管理器中浏览您的工作副本时,您将获得覆盖图标的好处。
您可以通过 2 种方式使用 GitExtensions 轻松实现这一点。
第一个是做完全相同的事情,但是从 GUI 开始,当您不想使用您观看的提交的现有提交消息来压缩时,这是合适的。 .
git reset --soft HEAD~<number of commits to squash>
在 GitExtensions 的历史浏览器中,右键单击要保留的最后一次提交并选择'reset branch to here' 。 然后选择选项'soft' 。
git commit
然后提交仍处于暂存阶段的更改。
第二个是 'rebase --interactive' :
右键单击上述相同的提交并选择“rebase on”。 在弹出窗口中选中“交互式”复选框。
然后,在编辑器中,将提交操作设置为“挤压”。 在做之前阅读关于交互式 rebase 的好文档。 当您想根据您正在压缩的提交的提交消息编写良好的提交消息时,此解决方案是完美的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.