ChatGPT解决这个技术问题 Extra ChatGPT

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

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

拉/推?以及如何使用 Git Bash 刷新它?

请注意,git ls-remote 在这里可能很有趣。
不要忘记在 git branch --all 之前使用 git fetch
git pull --all --prune 对我有用

K
Kirill Kobelev

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

git remote update origin --prune

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

git branch -a

git remote update origin --prune 是我一直在寻找的东西
关于使用 git remote update 的此答案与使用 git fetch 的已接受答案之间的区别,see here
这是正确的答案。 git fetch 没有删除我的远程分支的本地缓存。只有 --prune 能够将其全部清理干净。
您可以使用 git config remote.origin.prune true 让 git 自动执行此操作
git remote prune origin 具有相同的效果,并且您键入的内容更少。
P
Peter Mortensen

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 fetch -p
P
Peter Mortensen

我相信,如果您从 Bash 运行 git branch --all,那么您看到的远程和本地分支列表将反映您本地 Git 在您运行命令时“知道”的内容。由于您的 Git 始终与系统中的本地分支保持同步,因此本地分支列表将始终准确无误。

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

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

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


是的,git fetch 做到了。
git fetch 对我不起作用,需要添加 --prune。顺便说一句,我不是downvoter ;)
git fetch 不会删除已删除的远程分支。这可能就是为什么有些人不赞成
tl'dr 不正确:git remote update origin --prune
O
Oliver

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


git fetch git 2.17.1 对我没有任何改变。您一直在使用哪个版本和选项?
您需要 --prunegit config remote.NAME.prune true 来解决 OP 问题
m
markthegrea

如果您使用的是 Eclipse,

打开“Git 存储库”找到你的存储库。打开“分支”,然后打开“远程跟踪”。

https://i.stack.imgur.com/qai7r.png

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


这如何回答这个问题? - “Git 什么时候刷新远程分支列表?”
当我想在 eclipse 中刷新我的本地分支时,我用谷歌搜索,它把我带到了这里。这篇文章实际上帮助了一些人,因为它得到了一些支持。也许我误解了这个问题。对我来说,Eclipse 就是 Git(它的接口)。对不起,冒犯了大家!