例如,如果您运行git remote add repository 然后git fetch repository ,它将填充在repo上找到的所有分支。有没有办法将分支列表重置为与最初添加分支时相同,没有提取?
PHPStorm默认列出已获取的每个远程分支。这个列表已经变得很长了,我想删除列出的分支而不实际删除它们或远程(所以如果我确实希望它们在将来恢复它不会要求我重新添加repo)。
答案 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 origin
或git fetch --all
)时,将在本地重新创建分支,除非您指定要获取的分支,如下所示:< / p>
git fetch origin some-other-feature-branch
答案 2 :(得分:0)
我不知道通过git在一个命令中删除许多远程分支的方法,但是分支只不过是一个带有分支名称的文本文件,其中包含提交的哈希值。科。 存储库远程分支只是项目的.git/refs/remotes/repository
文件夹中的文本文件。您只需删除这些文本文件即可。分支机构将不再出现。
这是回避git的控制机制,但这实际上就是所有分支。我以前做过这个,但是如果你在你的.git文件夹中捣乱你不会保证你的安全,所以要小心,如果你不完全确定的话,还要做好准备。执行git fetch <repository>
将恢复分支指针。