交互式变基在SourceTree for Mac since version 1.6中已经可用(强调我的): git rebase –interactive命令允许您在创建提交后重新组织提交(但在您将它们公开之前),现在您可以在SourceTree中执行此操作。**合并(squash)多个提交在一起,**或重新排序,**只需通过拖放即可。**您还可以更改提交消息,或者编辑提交的内容。只需右键单击日志中的某个提交,然后选择“交互式地重定<sha>的子项的基”即可启动此过程。
截至www.example.com,Windows用户仍然没有壁球。然而,你可以用手得到同样的结果。1.4.1.0, Windows users still don't have squash. However, you can get the same result by hand. 要将分支A挤压到分支B中,请执行以下操作: 1.从A创建一个分支,并将其命名为C。 1.在软模式下将C复位为B。 1.看看B 1.承诺。
7条答案
按热度按时间g52tjvyc1#
更新答案
Windows源目录树
As of version 1.5,你现在可以做交互式的变基,这将允许你挤压。
适用于Mac的源目录树
交互式变基在SourceTree for Mac since version 1.6中已经可用(强调我的):
git rebase –interactive
命令允许您在创建提交后重新组织提交(但在您将它们公开之前),现在您可以在SourceTree中执行此操作。**合并(squash)多个提交在一起,**或重新排序,**只需通过拖放即可。**您还可以更改提交消息,或者编辑提交的内容。只需右键单击日志中的某个提交,然后选择“交互式地重定<sha>
的子项的基”即可启动此过程。旧答案
显然,压缩提交是SourceTree version 1.6 for the Mac的一个特性。
但是,Windows版本的SourceTree似乎不提供此功能,目前仍为1.0.8版。
使用命令行
您仍然可以选择使用命令行压缩提交:
在
TODO
列表中,将s
(用于压缩)放在要压缩到前一个提交中的提交旁边:要了解更多关于如何使用命令行压缩提交的信息,请参见FREE online Pro Git book中的Squashing Commits。
kgsdhlau2#
右键点击父提交并选择“交互式地重定子提交的基”。之后,您就可以通过拖放来压缩提交了。
https://community.atlassian.com/t5/Sourcetree-questions/In-SourceTree-how-do-I-squash-commits/qaq-p/345666#M10317
34gzjxbg3#
压缩最近的提交,如果你想要最后10次提交
q1qsirdb4#
截至www.example.com,Windows用户仍然没有壁球。然而,你可以用手得到同样的结果。1.4.1.0, Windows users still don't have squash. However, you can get the same result by hand.
要将分支A挤压到分支B中,请执行以下操作:
1.从A创建一个分支,并将其命名为C。
1.在软模式下将C复位为B。
1.看看B
1.承诺。
如果你不需要保持A的位置,你就不需要创建C。
我建议在执行这些操作时打开
gitk
,因为在关闭之前,您可以看到所有分离的提交。(我希望在SourceTree中看到这种慷慨)至少,reflog是你的朋友。
pes8fvy95#
在你自己的地方特色分支中进行老派的挤压
这个答案适用于任何平台上的大多数版本的源树,因为我只使用旧的功能。这是相当简单的,在你想到它之后。像往常一样,它只在公开你的工作之前有效。我用它来创建共享仓库中的"整洁"提交。同时在我自己的本地仓库中频繁提交。假设你在本地分支
myfeature
中。假设你在分支origin/myfeature
之前提交了几次。在整个过程中,您可以留在分支myfeature
内,因此不会影响其他任何人的工作。步骤1
在最近发布的提交上执行"重置当前分支到此提交",即标记为
origin/myfeature
的提交。混合重置将保留所有更改。请确保检查重置是混合的。(如果不小心执行了硬重置,您将丢失您的工作...)第二步
暂存您的更改(像往常一样)。不要忘记您在此过程中添加或删除的文件!
步骤3
写一个好的提交消息,总结所有你自己的(本地的)提交消息,因为它们已经丢失了。
搞定!
在步骤1中,你已经压缩了所有内容并清理了本地提交。你仍然在自己的特性分支上,所以你没有影响其他任何东西。如果你觉得不安全,在做任何事情之前,给你最近的提交贴上标签。只是为了安全起见。这样你就可以随时硬重置到那个标签,以防出错。如果一切顺利,只需要移除那个标签来清理你的提交历史。
lsmd5eda6#
选择一个提交,例如
ab12c3
,你想将它添加为压缩提交。右键单击-〉* 交互式重定ab12c3
的子项的基... *在新对话框中,
1.根据需要重新排序提交
1.然后选择每个提交(不是复选标记!而是选择行)
1.然后 * 与前一个挤压 * 最后
1.压缩提交的 * 编辑消息 *。
其他信息:最终所有的提交和压缩后的提交都基于提交
ab12c3
,这可能与你已经推送到远程节点的不同,如下面的指南所述,你需要在激活 * force push * 的情况下进行 * push *。完美的指南(与截图)在这里找到:https://www.linkedin.com/pulse/how-squash-commit-using-source-tree-ardall-leonardo
6tr1vspr7#
他们只是在Windows版本中添加了对“壁球”的支持。
SourceTree version 1.2 for Windows