我运行了
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
在此示例中,我不关心来自
xxx
远程的任何 12.1、12.2 或 12.3 分支。
如何将它们从此列表中删除?它们无法从远程删除,因为它们仍然是有效的分支。我已经修剪了所有陈旧的树枝。
您可以使用
git branch -d --remote <remote branch>
删除不需要的远程分支,但随后它们将随您的下一个 git fetch
返回。
要维护修剪列表,您必须小心地仅获取您感兴趣的分支。您可以获取特定分支,例如
git fetch origin <this branch> <that branch>
,但单个 git fetch
将撤消您的工作。
相反,在
git fetch
中配置
.git/config
的默认值。假设您只想获取 master 和 RELEASE/12.4.1.
[remote "origin"]
url = [email protected]:ruby/ruby.git
fetch = refs/heads/master
fetch = refs/heads/RELEASE/12.4.1
注意 Git 中的分支非常便宜。 IMO 这不值得付出努力。