如何删除本地git存储库中的远程分支?

Tal*_*Kit 36 git

git fetch之后,所有远程分支都在我的本地git存储库中作为远程控制可见.

如何有选择地删除本地存储库中的远程分支(不在远程存储库中)?

Tho*_*que 60

我有一个稍微不同但相似的问题,但解决方案对于偶然发现这个问题的其他人可能会有用...

我注意到我的本地存储库仍然有遥控器上不再存在的远程分支,所以我想删除它们.解决方案只是使用--prune(或-p)选项获取:

git fetch --prune
Run Code Online (Sandbox Code Playgroud)

  • 这是实际的解决方案. (9认同)
  • +1 :)但是请注意,这不会删除过去在某一点在本地签出的任何* local *分支(并且可能已推送或未推送到远程)。那些仍然必须通过`git branch -d <branch>`(甚至可能是`git branch -D <branch>`)删除。 (2认同)

Ily*_*nov 47

git branch -r -d remote/branch

您还需要重新配置fetch以避免以后再次获取此分支

  • 因为 [我也只是在找这个](https://git-scm.com/book/en/v2/Git-Internals-The-Refspec) — 你需要编辑 `.git/config`,然后编辑该部分在`[远程“起源”]`或其他任何东西下。将 `fetch = +refs/heads/*:refs/remotes/github/*` 替换为 `fetch = +refs/heads/master:refs/remotes/github/master` 以仅获取 master 分支。我认为你可以添加多个 `fetch` 行来做更多的分支。不确定你是否可以只排除一个分支。 (3认同)
  • 你如何重新配置​​获取? (2认同)