Answers:
要更新远程分支的本地列表:
git remote update origin --prune
显示(本地)Git知道的所有本地和远程分支
git branch -a
git remote update origin --prune
这就是我一直在寻找的东西
git fetch
没有删除我的远程分支的本地缓存。只能--prune
将其清理干净。
git config remote.origin.prune true
git remote prune origin
具有相同的效果,而您键入的内容更少。
我相信,如果您git branch --all
从Bash 运行,则看到的远程和本地分支列表将反映您在运行命令时本地Git“知道”的内容。由于您的Git关于系统中的本地分支始终是最新的,因此本地分支的列表将始终是准确的。
但是,对于远程分支机构则不必如此。您的本地Git仅知道在上一次访存(或拉取)中看到的远程分支。所以这是可能的,你可能会遇到git branch --all
并没有看到一个新的远程分支从而出现后您获取或拉最后一次。
为确保您的本地和远程分支机构列表是最新的,您可以git fetch
在运行之前进行操作git branch --all
。
有关更多信息,您运行时出现的“远程”分支git branch --all
根本不是很远。他们实际上是本地的。例如,假设遥控器上有一个分支feature
,您至少已将其拉入本地Git一次。origin/feature
运行时,您会看到列为分支git branch --all
。但是这个分支实际上是本地的 Git分支。当您这样做时git fetch origin
,此跟踪分支将使用远程服务器上的任何新更改进行更新。这就是为什么您的本地状态会过时的原因,因为可能会有新的远程分支,或者您的跟踪分支可能会过时。
git fetch
做到了。
git fetch
对我不起作用,需要添加--prune
。顺便说一句,我不是拒绝;)
git fetch
不会删除已删除的远程分支。这可能是为什么有些人downvoted
OP并未要求清除所有远程,而是要求清除默认远程的所有分支。
所以git fetch --prune
应该使用什么。
设置git config remote.origin.prune true
使--prune
自动的。在这种情况下,git fetch
也会从本地副本中删除陈旧的远程分支。另请参阅使用Git提取或拉取自动修剪。
请注意,这不会清除不再跟踪远程分支的本地分支。为此,请参见如何修剪远程不再存在的本地跟踪分支。
git fetch -p
使用git fetch
获取所有最新创建的分支。
git fetch
git 2.17.1对我没有任何改变。您使用了哪个版本和选项?
--prune
或git config remote.NAME.prune true
此解决OP问题
git ls-remote
这里可能很有趣。