更新本地git分支列表

3
我正在尝试更新本地分支列表。我只能看到3个,而远程有11个。我尝试了这个解决方案,使用修剪命令,但是即使我的配置文件已经更新,当我输入git branch -a时,结果与之前相同(远程分支以红色字体显示,并且第一个是'remotes/origin/HEAD->origin/master')。
2个回答

5
如果你在输入命令后没有看到分支,那很可能意味着这些分支本地不存在。你的计算机现在知道它们的存在,但尚未在本地创建它们。切换到其中一个“缺失”的远程分支: git checkout branch_name ...然后Git应该在本地创建分支。
还要记住,git remote update会从所有远程仓库获取代码,而你可能只需要执行git fetch origin从名为origin的一个远程仓库中获取代码。在你的情况下这可能没有太大变化,但请确保你理解这两者之间的区别。 针对评论的进一步说明: git fetch从一个远程仓库下载对象和引用,只能是一个远程仓库。所以,git fetch origin将从名为origin的仓库下载所有这些东西。
如果你使用git remote update,它将从全部仓库下载对象和引用(假设你配置了不止一个远程仓库,但你可能没有),实际上等同于执行git fetch --all
总之,通常你希望使用git fetch origin,它将更新你的本地状态以反映远程代码库中存在的内容。但这并不意味着它会物理上为你创建分支。这只是表示它们存在并可以被检出。要在本地计算机上实际创建选定的分支,请运行git checkout branch_name

非常感谢您的帮助。我理解了git remote update,但是我不确定从origin获取时会发生什么。 - Dimitrios Markopoulos
不用谢。好的,我已经在我的回答中加入了一些澄清,希望这能让你更好地理解! - Maciej Jureczko

1
尝试明确指定要获取所有远程分支: git fetch origin '+refs/heads/*:refs/heads/*' 要使此设置永久,请执行以下操作: git config remote.origin.fetch '+refs/heads/*:refs/heads/*' 只有在实际检出时才会创建分支的本地副本。因此,如果您有 remotes/origin/branchX,则想要有本地的 branchX,您需要执行 git checkout branchX

这会更新分支列表,还是也会更新我本地拥有的文件? - Dimitrios Markopoulos
这将获取所有远程分支,使得可以检出其中一个。本地文件/工作树/索引不会改变。 - Zloj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接