强制覆盖TortoiseGit推送对话中遗漏的现有分支

时间:2014-09-10 01:21:33

标签: git push tortoisegit

我习惯于在TortoiseGit中修改提交,然后在推送窗口中选中强制覆盖现有分支(可以放弃更改)复选框。但是现在Push窗口中缺少复选框。我现在如何强行推送TortoiseGit?

2 个答案:

答案 0 :(得分:17)

如果您使用TGit 1.8.10 +

“推送对话框”中有2个强制推送复选框。 左边是新的(--force-with-lease),这是一种“更安全”的强制推送方式。 如果您的本地refs / remotes / origin / master ==服务器的主服务器,那么您可以使用此选项强制推送。如果有人更改了服务器的主服务器,你的本地refs / remotes / origin / master!=服务器的主服务器,则你不能强制推送使用这个选项。

正确的是传统的(--force),它总是丢弃东西。

你的git版本低于1.8.5 所以--force-with-lease不可用。 您只在右侧的复选框中使用传统的--force选项。

您可以考虑升级您的git版本。

参考:https://tortoisegit.org/issue/2285

答案 1 :(得分:2)

enter image description here

引用来源:https://tortoisegit.org/docs/tortoisegit/tgit-dug-push.html#id692368

  

已知更改-这允许远程存储库   接受更安全的非快进推送。这可能会导致遥控器   丢失提交的存储库;小心使用。这样可以防止   丢失远程其他人的未知更改。它检查是否   服务器分支指向与远程跟踪相同的提交   分支(已知更改)。如果是,将执行强制推动。   否则将被拒绝。由于git没有远程跟踪   标签,使用此选项不能覆盖标签。这通过   git push命令的--force-with-lease选项。

     

未知更改-这允许远程存储库   接受不安全的非快进推送。这可能会导致遥控器   丢失提交的存储库;小心使用。这不检查任何   服务器提交,因此有可能丢失对服务器的未知更改   远程。将此选项与“包含标签”一起使用可以覆盖标签。这个   传递了git push命令的传统--force选项。