Git什么时候刷新远程分支列表

使用git branch --all显示所有远程当地分支。Git何时刷新此列表?

在拉/推?我如何使用gitbash刷新它?

544654 次浏览

我相信,如果你从Bash运行git branch --all,你看到的远程和本地分支列表将反映你运行命令时本地Git“知道”的内容。因为你的Git总是关于系统中的本地分支的最新信息,本地分支列表将永远准确。

然而,对于远程分支,情况并非如此。您的本地Git只知道它在上次获取(或拉取)中看到的远程分支。因此,您有可能运行git branch --all没有看到上次获取或拉取时出现之后的新远程分支。

为了确保您的本地远程分支列表是最新的,您可以执行git fetch之前运行git branch --all

有关更多信息,当您运行git branch --all时出现的“远程”分支根本不是真正的远程分支;它们实际上是本地的。例如,假设远程上有一个名为feature的分支,您至少将其拉入本地Git一次。当您运行git branch --all时,您会看到origin/feature被列为分支。但这个分支实际上是一个当地 Git分支。当您执行git fetch origin时,此跟踪分支会随着远程的任何新更改而更新。这就是为什么您的本地状态会变得陈旧,因为可能会有新的远程分支,或者您的跟踪分支会变得陈旧。

要更新远程分支的本地列表:

git remote update origin --prune

显示(本地)Git知道的所有本地和远程分支:

git branch -a

使用git fetch获取所有最新创建的分支。

如果您使用Eclipse,

  1. 打开“Git存储库”
  2. 找到您的存储库。
  3. 打开“分支”,然后打开“远程跟踪”。

Git

他们应该都在里面。右键点击“结帐”。

OP没有要求清理所有远程设备,而是要求清理默认远程设备的所有分支。

所以git fetch --prune是应该使用的。

设置git config remote.origin.prune true使--prune自动。在这种情况下,只有git fetch还将从本地副本中删除过时的远程分支。另请参阅使用Git获取或拉取自动修剪

请注意,这不会清理不再跟踪远程分支的本地分支。请参阅如何修剪远程不再存在的本地跟踪分支