【问题标题】:Can't remove a remote git branch无法删除远程 git 分支
【发布时间】:2013-01-07 15:50:02
【问题描述】:

这就是我正在做的......我如何摆脱原始远程分支?它是什么?

[master] /dir: git status
# On branch master
nothing to commit (working directory clean)

[master] /dir: git remote show
github

[master] /dir: git branch -r
  github/master
  origin/HEAD -> origin/master

[master] /dir: git branch -rd origin/HEAD
error: remote branch 'origin/HEAD' not found.

[master] /dir: git branch -rd origin
error: remote branch 'origin' not found.

[master] /dir: git branch -rd origin/HEAD -> origin/master
-bash: origin/master: No such file or directory

[master] /Applications/MAMP/htdocs/asanawww: git branch -rd origin/master
error: remote branch 'origin/master' not found.

[master] /Applications/MAMP/htdocs/asanawww: git push origin :master
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我也试过了

git gc --prune=now

没有运气

【问题讨论】:

  • origin/HEAD不是分支,是指向origin/master的引用,也就是分支。

标签: git


【解决方案1】:

很抱歉,我没有足够的声誉来添加评论。

我意识到这实际上是评论而不是答案,但this 问题可能会有所帮助。

解决办法:

git remote set-head origin -d

【讨论】:

    【解决方案2】:

    你应该这样做:

    git branch -rd origin/master
    

    考虑到此命令将在本地删除远程分支,即保存在您的存储库中的“origin/master”引用。如果该分支仍然存在于远程,则在进行拉取或提取时将再次创建“原点/主”引用。

    要从遥控器中正确删除它,您可以使用:

    git push origin :master
    

    这个<local>:<remote> 表示法意味着<local> 引用将作为<remote> 分支推送。通过使用:master,您的意思是“无引用”将作为主推送,从而将其删除。

    另一种选择是执行删除推送:

    git push --delete origin master
    

    【讨论】:

    • 感谢您的帮助 - 我尝试了上面的命令,但它们失败了 - 我相信这是因为远程源不存在?错误:找不到远程分支'origin/master'。致命:'origin' 似乎不是 git 存储库
    【解决方案3】:

    也许您需要删除与本地分支关联的工作树(以防它被检入另一个目录)

    git worktree remove work-tree-directory --force //use force if its dirty
    

    然后您可以使用

    删除分支
     git branch -D branch-to-delete  // -D is for force delete, for normal use -d
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-25
      • 2015-09-26
      • 2021-04-15
      • 2016-02-01
      • 2021-08-22
      • 1970-01-01
      • 2020-09-21
      • 2016-01-09
      相关资源
      最近更新 更多