在我的当前回购中,我有以下输出:

$ git branch -a
* master
  remotes/origin/master
  remotes/public/master

我想从分支列表中删除remotes/public/master:

$ git branch -d remotes/public/master
error: branch 'remotes/public/master' not found.

此外,gitremote的输出很奇怪,因为它没有列出public:

$ git remote show 
origin

如何从分支列表中删除“remotes/public/master”?

更新,尝试了gitpush命令:

$ git push public :master
fatal: 'public' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

当前回答

git push origin --delete <branch name>

引用自:http://www.gitguys.com/topics/adding-and-removing-remote-branches/

其他回答

git push public :master

这将删除Kent Fredric指出的名为master的远程分支。

要列出远程跟踪分支,请执行以下操作:

git branch -r

要删除远程跟踪分支,请执行以下操作:

git branch -rd public/master

当裁判被打包时,接受的答案对我不起作用。然而,这确实:

$ git remote add public http://anything.com/bogus.git
$ git remote rm public

我不知道git branch-rd,所以我自己解决此类问题的方法是将我的回购视为远程回购并进行远程删除。git push.:refs/remotes/public/master。如果其他方法不起作用,并且你想删除一些奇怪的引用,那么这种生涩的方法一定会奏效。它使您能够精确地删除(或创建!)任何类型的引用。

不确定我是如何陷入混乱的,但我的错误消息略有不同:

>git远程>git分支警告:忽略中断的ref refs/remotes/origin/HEAD*主>

但我能够通过稍微重新解释本页其他地方的修复程序来修复它。我的意思是我用关键字HEAD替换了<remote>/<branch>中的分支名称。人们提到的其他建议都没有奏效(gc、prune等),所以我已经没有什么想法了,希望得到最好的结果。总之,它就像一个魅力:

>gitremote>gitbranch-rd-origin/HEAD删除了远程跟踪分支原点/HEAD(为refs/remotes/origin/main)。>git分支*main>

gitgc--prune=now不是您想要的。

git remote prune public

或git remote prune origin#如果这是远程源

是你想要的