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

Kea*_*von 9 git push tortoisegit

我习惯于在TortoiseGit中修改提交,然后在Push窗口中选中Force Overwrite Existing Branch(可以放弃更改)复选框.但是现在Push窗口中缺少复选框.我现在如何强行推送TortoiseGit?

lin*_*ize 18

如果您使用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

  • 据我所知,复选框被称为"已知更改"和"未知更改"(与"强制:可能丢弃"相同) (4认同)

vsy*_*ync 6

在此处输入图片说明

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

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

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