是否可以完全清空远程存储库的本地分支列表?

时间:2013-12-02 22:13:40

标签: git phpstorm

例如,如果您运行git remote add repository 然后git fetch repository ,它将填充在repo上找到的所有分支。有没有办法将分支列表重置为与最初添加分支时相同,没有提取?

PHPStorm默认列出已获取的每个远程分支。这个列表已经变得很长了,我想删除列出的分支而不实际删除它们或远程(所以如果我确实希望它们在将来恢复它不会要求我重新添加repo)。

3 个答案:

答案 0 :(得分:4)

想出了以下解决方案,清空了回购的远程分支列表。类似于托马斯的解决方案,但仍然使用完全git循环并删除所有远程分支:

git branch -d -r $(git for-each-ref --format="%(refname:short)" refs/remotes/**repository**/)

答案 1 :(得分:1)

您可以使用-d调用上的-r(删除)和git branch(远程)标记,删除远程分支的本地表示,而无需远程删除分支:

git branch -d -r origin/some-feature-branch

不知道你正在使用什么OS / shell,所以我将让你创建一个循环来运行并删除它们。

警告您下次获取该远程(通过git fetch origingit fetch --all)时,将在本地重新创建分支,除非您指定要获取的分支,如下所示:< / p>

git fetch origin some-other-feature-branch

答案 2 :(得分:0)

我不知道通过git在一个命令中删除许多远程分支的方法,但是分支只不过是一个带有分支名称的文本文件,其中包含提交的哈希值。科。 存储库远程分支只是项目的.git/refs/remotes/repository文件夹中的文本文件。您只需删除这些文本文件即可。分支机构将不再出现。

这是回避git的控制机制,但这实际上就是所有分支。我以前做过这个,但是如果你在你的.git文件夹中捣乱你不会保证你的安全,所以要小心,如果你不完全确定的话,还要做好准备。执行git fetch <repository>将恢复分支指针。