是否有一种简单的方法可以删除远程等效不再存在的所有跟踪分支?
例:
分支机构(本地和远程)
在本地,我只有一个主分支.现在我需要处理bug-fix-a,所以我检查它,处理它,并将更改推送到远程.接下来我用bug-fix-b做同样的事情.
分支机构(本地和远程)
现在我有本地分支机构master,bug-fix-a,bug-fix-b.Master分支维护者将我的更改合并到master中并删除他已经合并的所有分支.
那么现在的状态是:
分支机构(本地和远程)
现在我想调用一些命令删除分支(在本例中为bug-fix-a,bug-fix-b),这些分支不再在远程存储库中表示.
它会像现有的命令git remote prune origin,但更像是git local prune origin.
我已经开始玩Git并遇到过"上游"和"下游"这两个词.我之前见过这些,但从未完全理解它们.这些术语在SCM(软件配置管理工具)和源代码的上下文中意味着什么?
我的情况是这样......在同一个仓库工作的人从他的本地和远程仓库中删除了一个分支......
大多数在Stack Overflow或其他网站上询问此类问题的人都会git branch -a在其底部的远程跟踪分支列表中显示分支问题:
* master
develop
feature_blah
remotes/origin/master
remotes/origin/develop
remotes/origin/feature_blah
remotes/origin/random_branch_I_want_deleted
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,不应该在那里的分支是本地的:
* master
develop
feature_blah
random_branch_I_want_deleted
remotes/origin/master
remotes/origin/develop
remotes/origin/feature_blah
Run Code Online (Sandbox Code Playgroud)
当我执行以下任何操作时,它不会在本地删除:
$ git prune
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
$ git remote prune origin
$ git fetch --prune
Run Code Online (Sandbox Code Playgroud)
更有用的信息:当我检查git remote show origin它是如何看起来:
* remote origin
Fetch URL: utilities:homeconnections_ui.git
Push URL: utilities:homeconnections_ui.git
HEAD branch: master
Remote branches:
master tracked
develop tracked
feature_blah tracked
other123 tracked
other444 tracked
other999 tracked
Local branches configured for 'git pull':
develop merges with remote …Run Code Online (Sandbox Code Playgroud) 我很确定我在一个流行的Git项目中看到某个地方的分支有一个像"feature/xyz"这样的模式.
但是当我尝试使用斜杠字符创建一个分支时,我收到一个错误:
$ git branch labs/feature
error: unable to resolve reference refs/heads/labs/feature: Not a directory
fatal: Failed to lock ref for update: Not a directory
Run Code Online (Sandbox Code Playgroud)
同样的问题(我最初的尝试):
$ git checkout -b labs/feature
Run Code Online (Sandbox Code Playgroud)
如何使用斜杠字符在Git中创建分支?
我在 Github.com 上删除了一堆合并分支,我执行了 git pull,但我的所有分支仍然显示。
于是我跑了..
git remote prune origin
Run Code Online (Sandbox Code Playgroud)
它表明分支在输出中被修剪。
但是,当我运行时,所有已删除的分支都会显示出来
git branch
Run Code Online (Sandbox Code Playgroud)
我想我做了一些与我预期不同的事情?我做了什么?如何从本地删除已从 GitHub 删除的分支?
在这篇文章中: git remote prune origin 不会删除本地分支,即使其上游远程分支被删除
它提到了同样的问题,但我不明白他们的意思,当他们说它会从本地删除陈旧的远程分支时。