我运行了git fetch remote --all
,现在当我运行时,git branch -a
它会吐出大量我不关心的远程分支。如何有选择地从此输出中删除分支?遥控器上的所有分支都是活动的、有效的分支。我只是不关心其中的大多数,所以我想将它们从本地系统中删除。
例如,我得到类似于“
remotes/xxx/RELEASE/12.1
remotes/xxx/RELEASE/12.1.1
remotes/xxx/RELEASE/12.2
remotes/xxx/RELEASE/12.3
remotes/xxx/RELEASE/12.3.1
remotes/xxx/RELEASE/12.4
remotes/xxx/RELEASE/12.4.1
remotes/xxx/master
remotes/origin/HEAD -> origin/master
remotes/origin/RELEASE/12.4.1
remotes/origin/feat/yarn-upgrade
remotes/origin/fix/hide-homepage
remotes/origin/master
在此示例中,我不关心远程的任何 12.1、12.2 或 12.3 分支xxx
。
我如何从该列表中删除它们?它们无法从远程删除,因为它们仍然是有效的分支。我已经把所有枯枝都剪掉了。
您可以使用 删除不需要的远程分支
git branch -d --remote <remote branch>
,但随后它们将随您的下一个 一起返回git fetch
。为了维护修剪后的列表,您必须小心地仅获取您感兴趣的分支。您可以获取特定分支,例如
git fetch origin <this branch> <that branch>
,但单个分支git fetch
将撤消您的工作。相反,配置in的默认值
git fetch
.git/config
。假设您只想获取 master 和 RELEASE/12.4.1。现在
git fetch
只会获取这两个分支。注意:我不推荐这样做。Git 中的分支非常便宜。IMO 这不值得付出努力,只会导致更多问题。相反,我建议设置
fetch.prune
并fetch.pruneTags
删除远程分支和标签,因为它们已从远程删除。要求远程删除旧分支,或用标签替换旧发布分支。我怀疑他们同时在开发 12.1、12.1.1、12.2、12.3、12.3.1、12.4 和 12.4.1。