使用git branch --all显示所有远程和当地分支。Git何时刷新此列表?
git branch --all
在拉/推?我如何使用gitbash刷新它?
我相信,如果你从Bash运行git branch --all,你看到的远程和本地分支列表将反映你运行命令时本地Git“知道”的内容。因为你的Git总是关于系统中的本地分支的最新信息,本地分支列表将永远准确。
然而,对于远程分支,情况并非如此。您的本地Git只知道它在上次获取(或拉取)中看到的远程分支。因此,您有可能运行git branch --all和没有看到上次获取或拉取时出现之后的新远程分支。
为了确保您的本地和远程分支列表是最新的,您可以执行git fetch之前运行git branch --all。
git fetch
有关更多信息,当您运行git branch --all时出现的“远程”分支根本不是真正的远程分支;它们实际上是本地的。例如,假设远程上有一个名为feature的分支,您至少将其拉入本地Git一次。当您运行git branch --all时,您会看到origin/feature被列为分支。但这个分支实际上是一个当地 Git分支。当您执行git fetch origin时,此跟踪分支会随着远程的任何新更改而更新。这就是为什么您的本地状态会变得陈旧,因为可能会有新的远程分支,或者您的跟踪分支会变得陈旧。
feature
origin/feature
git fetch origin
要更新远程分支的本地列表:
git remote update origin --prune
显示(本地)Git知道的所有本地和远程分支:
git branch -a
使用git fetch获取所有最新创建的分支。
如果您使用Eclipse,
他们应该都在里面。右键点击“结帐”。
OP没有要求清理所有远程设备,而是要求清理默认远程设备的所有分支。
所以git fetch --prune是应该使用的。
git fetch --prune
设置git config remote.origin.prune true使--prune自动。在这种情况下,只有git fetch还将从本地副本中删除过时的远程分支。另请参阅使用Git获取或拉取自动修剪。
git config remote.origin.prune true
--prune
请注意,这不会清理不再跟踪远程分支的本地分支。请参阅如何修剪远程不再存在的本地跟踪分支。