删除远程分支(Deleting a remote branch)

2019-06-27 20:07发布

当我执行branch -a

$ git branch -a
* master
 remotes/origin/HEAD -> origin/master
 remotes/origin/hello
 remotes/origin/master

然后,我删除分支:

$ git branch -r -D origin/hello
Deleted remote branch origin/hello (was c0cbfd0).

现在我明白了:

$ git branch -a
* master
 remotes/origin/HEAD -> origin/master
 remotes/origin/master

分支“你好”已被删除。 但是,当我取:

$ git fetch
From localhost:project
 * [new hello]      hello     -> origin/hello

$ git branch -a
* master
 remotes/origin/HEAD -> origin/master
 remotes/origin/hello
 remotes/origin/master

我很困惑。
我认为它已被删除,但它仍然是存在的。

Answer 1:

您需要从使用以下命令远程删除它:

git push origin --delete hello

当您运行git branch -rd origin/hello ,你只是删除您的本地分支。 上面的代码从原点回购移除。



Answer 2:

要删除远程分支 ,使用

git push origin :remotebranch

一切只在本地储存库来操作。 在较新版本的git的,你也可以

git push origin --delete remotebranch

具体根据文档 , --delete指相同的“作为前缀的所有参考文献以冒号”。

如果你想知道的含义: ,它遵循的标准语法push 。 通常情况下,你会写

git push origin localbranch:remotebranch

但在这里,你替换localbranch用“无中生有”,有效地删除远程分支。



Answer 3:

需要注意的是git的分支只允许删除本地引用。

 git branch -r -D origin/hello

这只是删除本地指针指向一个远程跟踪分支 ,但对远程回购内容本身没有影响。
只有git push origin :hello ,在其他的答案中提到,要那么做。

此外,在不更改配置branch.hello.fetch :它仍然引用产地/你好,这就是为什么在未来获取在当地的回购将重新创建远程跟踪分支。



Answer 4:

git push origin --delete somebranch

是你删除远程分支的方式。 如果你仍然在旧版本的Git,你可能需要使用旧的语法:

git push origin :somebranch

转换为“对原产远程指出,没有推入somebranch”。 该命令的格式是“混帐推(其中远程回购)(什么地方参考):(该远程引用),系统将略(什么参考)被解释为‘把什么’到(其中远程引用),有效地将其删除。在新的语法更加直观。



文章来源: Deleting a remote branch
标签: git branch