Git什么时候刷新远程分支列表?
When does Git refresh the list of remote branches?
使用 git branch --all
显示所有 remote 和 local 分支。 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,
- 打开"Git Repositories"
- 找到您的存储库。
- 打开 "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。
使用 git branch --all
显示所有 remote 和 local 分支。 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,
- 打开"Git Repositories"
- 找到您的存储库。
- 打开 "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。