我有一个git存储库有远程设置(“git fetch”工作),但它没有有任何远程分支:“。git / refs / remotes“文件夹不存在,
git branch -r
什么都不返回(空列表,没有分支)。然而,实际的远程存储库确实有一个分支。如果我重新克隆远程仓库,我会得到另一个 具有远程分支的本地仓库。
我认为这种状态不可能。我的问题:
其他信息
“git config --get remote.origin.fetch”为空(即该命令不产生输出)
“git remote show origin”显示
$ git remote show origin
* remote origin
Fetch URL: <correct remote url here>
Push URL: <correct remote url here>
HEAD branch: master
Local ref configured for 'git push':
master pushes to master (up to date)
答案 0 :(得分:26)
[编辑,2017年4月]如果您使用--single-branch
创建了原始克隆,则remote.origin.fetch
设置将成为问题。如果您使用了--depth
限制,那么这也意味着--single-branch
。恢复下面描述的正常remote.origin.fetch
值,您将获得更全面的克隆。
通常,只需运行git fetch
即可恢复远程跟踪分支。
如果git fetch
不还原它们,那么我想知道:git config --get-all remote.origin.fetch
打印的是什么? (这假定远程名称为origin
;如果不是,则替换实际名称。)应将其设置为+refs/heads/*:refs/remotes/origin/*
(同样假设名称为origin
)。特殊情况(例如提取笔记)可能会添加更多行。
答案 1 :(得分:5)
这解决了我的问题
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
当我执行vi .git/config
时,我松开了获取行:
fetch = +refs/heads/*:refs/remotes/origin/*