Git fetch未更新origin/master

3
当我执行git fetch时,什么也没有发生,尽管我可以看到我的origin/master落后于GitHub上的版本。从git fetch中唯一得到的输出是:
$ git fetch origin
From github.com:myname/myrepo
 * branch            master      -> FETCH_HEAD

我需要的输出是:
$ git fetch
From github.com:myname/myrepo
   6a6a103..77edb9d  master     -> origin/master
 * [new branch]      feature    -> origin/feature

当我运行 git ls-remote 命令时:
$ git ls-remote
From git@github.com:myname/myrepo.git
77edb9d40be3a75bd25288ab375ef16e009267fa        HEAD
77edb9d40be3a75bd25288ab375ef16e009267fa        refs/heads/master      <-- latest
9f2c06129eefef3f1cdc96499058d7b58e2ad0b6        refs/heads/feature

但是git show-ref给了我以下结果

$ git show-ref
e4d894a2db19c3dbbdb946b25142c981695e0790 refs/heads/master
9f2c06129eefef3f1cdc96499058d7b58e2ad0b6 refs/heads/feature
6a6a10322110a690044e267eb7644613057dd932 refs/remotes/origin/master    <-- old!

为什么 git fetch 没有任何反应?
2个回答

4
如果有办法通过命令行来修复这个问题吗? 您可以使用git config命令(重新获取所有远程分支)。
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

3
origin的refspec出了问题。refspec是远程配置中告诉git要获取和如何获取的部分。详细描述请参见此处
.git/config中有一个部分。
[remote "origin"]
    url = git@github.com:myname/myrepo.git

这应该看起来像:

[remote "origin"]
    url = git@github.com:myname/myrepo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

如果有一种通过命令行来修复这个问题的方法,我不知道。我也不知道为什么会发生这种情况。

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