远程分支没有出现在“git branch -r”中

时间:2012-09-07 14:20:45

标签: git

我一直在推动远程bitbucket回购,最近一位同事将他创建的新分支推到同一个回购中。

我正在尝试获取他上传的更改。

 $ git branch -a  
 * master 
 localbranch1
 localbranch2
 remotes/origin/master
  

$ git branch -r
  原点/主

在用于bitbucket的web ui中,我可以看到他所创建的分支。任何帮助/建议/方向将是最受欢迎的。感谢。

您需要提供更多信息。

编辑1

$ git fetch bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

如果他创建的分支名为 new_branch_b ,我应该期待看到:

$ git branch -r    
origin/master 
origin/new_branch_b

编辑2

$ git remote update
Fetching bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD


$ git branch -r
  origin/master

编辑3

[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git

我打电话给远程bitbucket而不是原点(至少我记得这是我刚才设置的)

编辑4

我按照kan的回答更新了bitbucket远程配置。

  

$ git config -e

[remote "bitbucket"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/bitbucket/*

对于大多数人来说,它将被称为原点

[remote "origin"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

之后

$ git remote update

Fetching bitbucket
Password for 'https://user@bitbucket.org':
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 35 (delta 21), reused 0 (delta 0)
Unpacking objects: 100% (35/35), done.
From https://bitbucket.org/user/repo
 * [new branch]      branch_name1 -> origin/branch_name1
 * [new branch]      branch_name2    -> origin/branch_name2

....等等。

我认为git fetch origin也适用于git remote update

感谢所有帮助我解决这个问题的人。

5 个答案:

答案 0 :(得分:183)

如果您还没有这样做,请更新您的遥控器:

$ git remote update
$ git branch -r

答案 1 :(得分:92)

remote部分还指定了提取规则。你可以添加类似的内容:

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

从远程获取所有分支。 (或origin)替换bitbucket

请在此处阅读:https://git-scm.com/book/en/v2/Git-Internals-The-Refspec

答案 2 :(得分:24)

如果使用--depth参数进行克隆,则会将.git / config设置为不提取所有分支,而只设置为master。

您可以简单地省略参数或从

更新配置文件
fetch = +refs/heads/master:refs/remotes/origin/master

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

答案 3 :(得分:17)

我有同样的问题。似乎最简单的解决方案是删除遥控器,重新添加它,然后获取。

答案 4 :(得分:4)

如果您还没有执行“git fetch”,那么git branch -agit branch -r不会显示所有远程分支。 git remote show origin始终如一地运作。另外git show-ref显示git仓库中的所有引用。但它就像git branch命令

一样工作