Git:无法看到新的远程分支

一个同事推动了一个新的远程分支到/ dev / homepage,我运行时看不到:

$ git branch -r 

我仍然看到先前存在的远程分支机构。

我假设这是因为我的本地远程参考不是最新的,因此当我跑git拉什么都没有发生,因为git拉只拉当前工作分支正确? 不同于推动所有有相应远程分支变化的分支的git push?

首先,使用命令git ls-remote origin ,仔细检查分支是否已经被远程推送。 如果新分支出现在输出中,请尝试执行命令git fetch :它应该从远程存储库下载分支引用。

如果您的远程分支仍然没有出现,请仔细检查(在ls-remote输出中) ls-remote分支名称是什么,具体来说,如果它以refs/heads/开头。 这是因为,默认情况下, remote.<name>.fetch是:

 +refs/heads/*:refs/remotes/origin/* 

这样只有以refs/heads/开头的远程引用才会被本地映射为refs/remotes/origin/下的远程跟踪引用(即它们将成为远程跟踪分支)

做一个git远程更新也将更新从远程仓库可用分支的列表。

如果您使用的是TortoiseGit,从版本1.8.3.0开始,您可以执行“Git – > Sync”,在出现的窗口左下方会出现一个“Remote Update”button。 点击。 那么你应该可以做“Git – > Switch / Checkout”,并且新的远程分支出现在你可以select的分支的下拉列表中。

检查.git/config是否包含

 [remote "origin"] url = … fetch = +refs/heads/master:refs/remotes/origin/master 

如果是这样,改变它说

 [remote "origin"] url = … fetch = +refs/heads/*:refs/remotes/origin/* 

那么你应该可以使用它:

 $ git fetch remote: Counting objects: … remote: Compressing objects: .. Unpacking objects: … remote: … From … * [new branch] branchname -> origin/branchname $ git checkout branchname Branch branchname set up to track remote branch branchname from origin. Switched to a new branch 'branchname' 

最后为我工作的是将远程存储库名称添加到git fetch命令,如下所示:

 git fetch core 

现在你可以看到所有这些:

 git branch --all 

这听起来微不足道,但我的问题是,我没有在正确的项目。 确保你在项目中,你期望在; 否则,你将无法拉下正确的分支。