【问题标题】:Why does git list a deleted remote branch?为什么 git 列出已删除的远程分支?
【发布时间】:2016-10-20 02:24:14
【问题描述】:

[与Why do I see a deleted remote branch? 非常相似,但那里的解决方案都不起作用。]

forking a repository 你可能会得到一个你不想要的分支:

$ git branch -a
* master
  remotes/origin/master
  remotes/origin/merge-brad

Deleting remote branches 是一个很好理解的任务,所以让我们这样做:

$ git push origin :merge-brad 
To git@github.com:l0b0/fake-s3.git
 - [deleted]         merge-brad

它还在分支列表中吗?确实是的:

$ git branch -a
* master
  remotes/origin/master
  remotes/origin/merge-brad

Deleting local references to dead branches 也是众所周知的。让我们试试first one

$ git fetch -p
From github.com:l0b0/fake-s3
 * branch            master     -> FETCH_HEAD

没有:

$ git branch -a
* master
  remotes/origin/master
  remotes/origin/merge-brad

好的,第二个怎么样:

$ git remote prune origin

还是不行:

$ git branch -a
* master
  remotes/origin/master
  remotes/origin/merge-brad

第三个:

$ git remote prune origin
$ git branch -a
* master
  remotes/origin/master
  remotes/origin/merge-brad

GitHub 中的分支列表不再显示merge-brad,但本地副本拒绝承认这一点,那么现在怎么办? my Git configuration 是否以某种方式打破了这一点?

$ git --version
git version 2.8.3

【问题讨论】:

  • 它可能应该被修剪,但我想知道:git config --get-all remote.origin.fetch 显示什么?
  • 钱没错,@torek。

标签: git github


【解决方案1】:

我的错。我没有仔细查看命令就应用了configuration change to get upstream pull requests

git config remote.origin.fetch "+refs/pull/*/head:refs/remotes/upstream/pr/*"

我曾假设结果是 upstream 的拉取会检索拉取请求,但这当然会修改 origin

修复:

$ git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*

【讨论】:

  • 每个遥控器可以有多个fetch 设置。但是,当 Prune 没有意识到有多种方法可以获取一些远程跟踪分支(在较新的 Git 版本中已修复)时,Prune 在某些复杂情况下会变得松鼠。
猜你喜欢
  • 2021-04-15
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 2015-09-26
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多