Git fetch不下载远程分支

时间:2014-10-30 09:42:55

标签: git

我无法让Git在遥控器上获取新的分支。 git remote show不会显示除master之外的任何分支,但git ls-remote证明它们存在。

示例:git ls-remote显示分支homodyne_process存在 -

$ git ls-remote origin
b935ee960a588144d3df0f08a82b81ea705c7543        HEAD
f11bd3ac9c2345a12edb9d49cd5bd027616b2226        refs/heads/homodyne_process
b935ee960a588144d3df0f08a82b81ea705c7543        refs/heads/master

获取更新并显示远程分支

$ git fetch
$ git remote show origin
* remote origin
  Fetch URL: gitolite@git.uio.no:***
  Push  URL: gitolite@git.uio.no:***
  HEAD branch: master
  Remote branch:
    master tracked
  Local branches configured for 'git pull':
    master        merges with remote master
  Local refs configured for 'git push':
    homodyne_process pushes to homodyne_process (fast-forwardable)
    master           pushes to master           (up to date)
$ git branch -r
  origin/master

我设法在运行

后获得homodyne_process pushes (...)
git pull origin homodyne_process:homodyne_process

但它仍然不会显示远程分支确实存在。为什么会这样?

我还尝试过任何git fetch origin homodyne_process和许多组合,但分支origin/homodyne_process将不会出现。

我在Windows上工作,回购通过gitolite托管。

(为简洁起见,我已从输出中删除了一些其他分支。)

1 个答案:

答案 0 :(得分:9)

这个答案解决了我的问题https://stackoverflow.com/a/25941875/1982894

基本上我需要运行

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

这会设置git来获取所有远程分支而不仅仅是master。原始配置是:

$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master