我之前运行过git fetch origin
和类似的命令,并提取了我所有同事的分支机构。但是,我不需要它们。我只需要master
及其分支。如果运行git branch
,它将列出我在计算机上创建的分支。对于每个本地分支,上游都有一个等效分支。如何删除所有其他分支的本地副本?
一个相关的问题是,如何git fetch
在不获取同事的分支的情况下is_triangle
?
答案 0 :(得分:0)
每个分支都单独运行git branch -rd origin/branchIDontWant
,或者如果有很多分支,可以使用git for-each-ref --format "%(refname)" refs/remotes/origin | xargs -I% git update-ref -d "%"
将它们全部销毁。
您只能获取(或拉出)您要继续前进的分支(git fetch origin branchIWant
),或配置git fetch
只从远程获取所需的分支。
要将git fetch
配置为仅提取所需的分支,则需要更新要从中提取的远程设备的配置。这在https://git-scm.com/book/en/v2/Git-Internals-The-Refspec中有更详细的描述。您将要从fetch = +refs/heads/*:refs/remotes/origin/*
中删除存储库的默认refspec .git/config
。然后,为要提取的每个分支(fetch = +refs/heads/branchIWant:refs/remotes/origin/branchIWant
)添加一个refspec branchIWant
。
请记住,我假设您仅使用一个名为origin
的遥控器,对更多的遥控器重复上述步骤。