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

When does Git refresh the list of remote branches?

使用 git branch --all 显示所有 remotelocal 分支。 Git 什么时候刷新这个列表?

在 pull/push?以及如何使用 Git Bash?

刷新它

我相信,如果您从 Bash 运行 git branch --all 看到的远程和本地分支列表将反映您的本地 Git "knows" 关于当时你运行的命令。因为您的 Git 始终与系统中的本地分支机构保持同步,所以本地分支机构列表将始终准确无误。

但是,对于远程分支机构而言,情况并非如此。您的本地 Git 只知道它在上次获取(或拉取)中看到的远程分支。因此,您可能 运行 git branch --all 看到一个新的远程分支,它在上次 之后出现你拿了或拉了。

为了确保您的本地 远程分支列表是最新的,您可以在 git fetch before 运行宁git branch --all.

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

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

git remote update origin --prune

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

git branch -a

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

如果您使用的是 Eclipse,

  1. 打开"Git Repositories"
  2. 找到您的存储库。
  3. 打开 "Branches" 然后 "Remote Tracking"。

他们应该都在里面。右击 "checkout."

OP 没有要求清理所有遥控器,而是要求清理默认遥控器的所有分支。

所以应该使用git fetch --prune

设置 git config remote.origin.prune true 使 --prune 自动。在那种情况下, git fetch 也会从本地副本中删除陈旧的远程分支。另见 Automatic prune with Git fetch or pull.

请注意,这不会清除不再跟踪远程分支的本地分支。请参阅 How to prune local tracking branches that do not exist on remote anymore