无法获取如何为当前分支执行squash rebase。控制台命令为
git rebase -i HEAD~2然后像往常一样挤压。但是如何在TGit中做同样的事情呢?
初始化案例的脚本
git init .
touch 1
git add 1
git commit -m "1"
touch 2
git add 2
git commit -m "2"
touch 3
git add 3
git commit -m "3"因此,在压缩之后,我们将有1个提交和3个文件。
有什么建议吗?
发布于 2014-01-23 19:04:09
您可以使用GUI组合两个相邻的提交,如下所示。请记住,不要在共享存储库上进行组合提交。请参见:

发布于 2012-09-27 03:29:38
这对使用TortoiseGit 1.7.12的我来说是有效的:
TortoiseGit -> Show log。Rebase master onto this...。在出现的"Rebase”对话框中,勾选D11复选框,然后右键单击提交,以在D12、D13等之间进行选择。或者在您的情况下勾选Squash ALL复选框。Start Rebase按钮,如果成功,该按钮将变为Commit按钮,然后变为Done按钮。全部按下。请注意,在您的示例脚本中,您将压缩/修复到根提交which is a special case,并且不会像上面描述的那样工作,因为根提交没有可以在步骤2中选择的父级。
发布于 2015-08-07 22:33:37
下面是我使用Tortoise所做的事情&将存储库存储在Assembla上(显然是通过类似于GitHub的方式)。
我决定要有效地删除我的整个提交历史,并从头开始存储库。我本可以删除本地git文件夹和Assembla中相应的repo,然后重新创建它,但我认为最好弄清楚如何以“正确的方式”做到这一点。
所以,下面是我是如何做到的:
1)使用Tortoise Git,展示repo的日志。突出显示所有提交,右键单击它们,然后选择“合并为一个提交”。
2)在弹出的对话框中,删除commit注释(这将成为所有先前注释的组合),并将其替换为单个注释,例如REBASE。然后启动提交。然后,本地存储库将有效地从头开始(当然,所有文件仍然添加到其中),而不必删除和重新创建它。
3)不幸的是,你不能直接把它推给Assembla。它会拒绝这一点,坚持你的“头”在远程分支后面。因此,为了解决第一个问题,请转到Assembla中存储库的“设置”页面。开启“允许-force推送”。
4)现在执行“强制推流”。我不知道Tortoise是否有这样的gui选项,但通过命令提示符很容易做到:
cd [your repo folder]
git push -f origin完成了!
更新:
要使用TortoiseGit“强制推送”,在推送对话框中有用于强制“已知更改”和“未知更改”的复选框。我不确定有什么不同,但它们都导致使用git --force开关。试着从“已知更改”开始。
https://stackoverflow.com/questions/12528854
复制相似问题