Git:删除`git branch`未列出的分支的本地副本

时间:2018-10-08 22:48:57

标签: git ubuntu

我之前运行过git fetch origin和类似的命令,并提取了我所有同事的分支机构。但是,我不需要它们。我只需要master及其分支。如果运行git branch,它将列出我在计算机上创建的分支。对于每个本地分支,上游都有一个等效分支。如何删除所有其他分支的本地副本?

一个相关的问题是,如何git fetch在不获取同事的分支的情况下is_triangle

1 个答案:

答案 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的遥控器,对更多的遥控器重复上述步骤。