这是我使用 Tortoise Git 所做的并将 repo 存储在 Assembla 上(显然通过类似于 GitHub)。
我决定我想有效地删除我的整个提交历史,并从头开始重新开始回购。我本可以在 Assembla 中删除本地 git 文件夹和相应的 repo,然后重新创建它,但我认为最好弄清楚如何以“正确的方式”执行此操作。
所以,这就是我实现它的方法:
1) 使用 Tortoise Git,显示 repo 的日志。突出显示所有提交,右键单击它们,然后选择“合并为一个提交”。
2)在弹出的对话框中,删除提交评论(它成为所有先前评论的组合),并将其替换为单个评论,例如REBASE。然后启动提交。然后,本地 repo 将从头开始有效(当然,所有文件仍然添加到其中),而无需删除并重新创建它。
3) 不幸的是,您不能只将其推送到 Assembla。它会拒绝这个,坚持你的“头”在远程分支后面。因此,要解决这个问题,首先转到 Assembla 中的 repo 的“设置”页面。启用“允许-强制推送”。
4) 现在执行“强制推送”。我不知道 Tortoise Git 是否有一个 gui 选项,但通过命令提示符很容易做到:
cd [your repo folder]
git push -f origin
完毕!
更新:
要使用 TortoiseGit “强制推送”,在推送对话框中有强制“已知更改”和“未知更改”的复选框。我不确定有什么区别,但它们都导致使用 git --force 开关。首先尝试“已知更改”。