一位同事将一个新的远程分支推送到 origin/dev/homepage,但我在运行时看不到它:
$ git branch -r
我仍然看到预先存在的远程分支。
我认为这是因为我的本地远程引用不是最新的,因此当我运行 git pull 时什么也没发生,因为 git pull 只拉当前工作分支,对吗?与 git push 不同,它将所有有更改的分支推送到相应的远程分支?
首先,使用命令仔细检查分支是否已实际远程推送git ls-remote origin。如果新分支出现在输出中,请尝试给出命令git fetch:它应该从远程存储库下载分支引用。
git ls-remote origin
git fetch
如果您的远程分支仍然没有出现,请仔细检查(在ls-remote输出中)远程上的分支名称是什么,特别是它是否以refs/heads/. 这是因为,默认情况下, 的值为remote.<name>.fetch:
ls-remote
refs/heads/
remote.<name>.fetch
+refs/heads/*:refs/remotes/origin/*
这样只有名称以开头的远程引用refs/heads/才会在本地映射为远程跟踪引用refs/remotes/origin/(即,它们将成为远程跟踪分支)
refs/remotes/origin/