使用git branch --all
可显示所有远程和本地分支。Git何时刷新此列表?
拉动/推送?如何使用Git Bash刷新它?
发布于 2016-04-01 22:09:04
要更新远程分支的本地列表:
git remote update origin --prune
显示( local ) Git知道的所有本地和远程分支
git branch -a
发布于 2019-01-22 23:24:05
OP并未要求清理所有远程数据库,而是要求清理默认远程数据库的所有分支。
所以应该使用git fetch --prune
。
设置git config remote.origin.prune true
会使--prune
自动。在这种情况下,git fetch
还将从本地副本中删除陈旧的远程分支。另请参见。
请注意,这不会清理不再跟踪远程分支的本地分支。请参阅了解这一点。
发布于 2016-04-01 22:08:25
我相信如果你从Bash运行git branch --all
,你看到的远程和本地分支的列表将反映你在运行命令时你的本地Git“知道”什么。因为您的Git关于系统中的本地分支始终是最新的,所以本地分支的列表将始终是准确的。
但是,对于远程分支,情况并非如此。您的本地Git只知道它在最后一次fetch (或pull)中看到的远程分支。因此,您可能会运行git branch --all
,但看不到在上次获取或拉取之后出现的新远程分支。
要确保本地和远程分支列表是最新的,可以在运行git branch --all
之前执行git fetch
。
关于更多信息,在运行git branch --all
时出现的“远程”分支根本不是真正的远程分支;它们实际上是本地分支。例如,假设远程服务器上有一个名为feature
的分支,您至少将其放入本地Git中一次。当您运行git branch --all
时,您将看到origin/feature
作为分支列出。但是这个分支实际上是一个本地的Git分支。当您执行git fetch origin
时,此跟踪分支将使用来自远程的任何新更改进行更新。这就是为什么您的本地状态会变得陈旧,因为可能会有新的远程分支,或者您的跟踪分支可能会变得陈旧。
https://stackoverflow.com/questions/36358265
复制相似问题