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


Answers:


1218

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

git remote update origin --prune

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

git branch -a

143
git remote update origin --prune这就是我一直在寻找的东西
WonderLand

6
在这个答案,使用之间的区别git remote update,以及公认的答案,它使用git fetch在这里看到的
红色豌豆

6
这是正确的答案。git fetch没有删除我的远程分支的本地缓存。只能--prune将其清理干净。
费利佩·阿尔瓦雷斯

23
您可以让git自动执行git config remote.origin.prune true
kjhf

8
git remote prune origin具有相同的效果,而您键入的内容更少。
Dvin

27

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

但是,对于远程分支机构则不必如此。您的本地Git仅知道在上一次访存(或拉取)中看到的远程分支。所以这是可能的,你可能会遇到git branch --all没有看到一个新的远程分支从而出现您获取或拉最后一次。

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

有关更多信息,您运行时出现的“远程”分支git branch --all根本不是很远。他们实际上是本地的。例如,假设遥控器上有一个分支feature,您至少已将其拉​​入本地Git一次。origin/feature运行时,您会看到列为分支git branch --all。但是这个分支实际上是本地的 Git分支。当您这样做时git fetch origin,此跟踪分支将使用远程服务器上的任何新更改进行更新。这就是为什么您的本地状态会过时的原因,因为可能会有新的远程分支,或者您的跟踪分支可能会过时。


4
是的,git fetch做到了。
BendEg '16

14
反对者请注意:如果您认为带有正确解释的正确信息值得反对,则至少要大声说一下并发表评论。
Tim Biegeleisen

3
git fetch对我不起作用,需要添加--prune。顺便说一句,我不是拒绝;)
Deqing

3
git fetch不会删除已删除的远程分支。这可能是为什么有些人downvoted
杰罗姆MEVEL

@JérômeMEVEL令人惊奇的是,现在接受的答案已有1000票赞成票。太疯狂了……希望我能有这样的机会:-)
蒂姆·比格勒森

24

OP并未要求清除所有远程,而是要求清除默认远程的所有分支。

所以git fetch --prune应该使用什么。

设置git config remote.origin.prune true使--prune自动的。在这种情况下,git fetch也会从本地副本中删除陈旧的远程分支。另请参阅使用Git提取或拉取自动修剪

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


为了使它更短一点git fetch -p
Michael Warner

2

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


1
git fetchgit 2.17.1对我没有任何改变。您使用了哪个版本和选项?
PointedEars

2
您需要用--prunegit config remote.NAME.prune true此解决OP问题
奥利弗

-1

如果您正在使用Eclipse,并且想从上游查看新分支,请参阅:

在Git透视图中,右键单击Git存储库,然后选择“从上游获取”。这将获取新的远程分支。


-8

如果您使用的是Eclipse,

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

吉特

他们应该都在那里。右键单击并“结帐”。


这如何回答这个问题?- “ Git什么时候刷新远程分支机构的列表?”
彼得·莫滕森

当我想在日食中刷新本地分支机构时,我用Google搜索了,然后把我带到了这里。由于有一些赞誉,这篇文章实际上已经帮助了一些人。也许我误解了这个问题。对我来说,Eclipse IS Git(它的接口)。对不起,冒犯了大家!
markthegrea
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.