使用或不使用强制选项的Git push

3

删除远程分支的方法如下:

git push origin :master

如果本地版本落后于远程版本,则需要进行以下操作:

git push --force origin :master

但是,强制删除例如基于本地主分支的“master”分支意味着什么?您将不会删除远程“master”分支所指向的位置。


3
你的问题没有任何意义。你的语法更像是你正在删除你的主分支而不是从本地分支推送。 - Andrew C
1个回答

3

:branch refspec 是推送 分支 删除 的语法,也可以写成:

git push origin --delete <branchName>

这不应与 git push :混淆,其中':'代表“匹配分支”--force用于本地分支与其远程对应分支(上游分支)的历史记录不同的情况。
例如,如果您变基 master ,它的历史记录会更改,您需要--force才能将其推送。
你不会删除远程主分支指向的位置。
不,你将删除分支本身(在远程版本库中),而不是删除远程版本库中该分支的提交。
如果这些提交不再被任何分支引用,则它们将变得“不可见”(软删除),但仍可通过在远程服务器上执行git reflog来访问。

“本地分支与远程分支历史记录不同的情况” - 什么本地分支?这个命令似乎没有涉及任何本地分支。 - Chris Martin
@ChrisMartin,上一条评论是关于常规推送的。由于OP的命令不涉及本地分支,因此“--force”选项就没有太多意义了。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接