我遇到无法切换到仅在git ls-remote
中列出的分支的情况,这是详细信息:
我将github repoA作为repoB进行了分叉,在ComputerA中创建了自己的分支并将其推送到repoB,在ComputerB中,我将分叉的repo克隆到了本地磁盘中,添加了远程上游,并尝试切换到我创建的分支,但是失败,但是我可以成功切换到github网页中的同一分支。
以下结果来自ComputerB中的repoB。
ls远程分支:
$ git ls-remote --heads
2da2080ea7201fc7928e947dc3214dd89d86c4ba refs/heads/enable-vim-better-whitespace
433cedd84bba8bcdf3584734906b2c0fd3b6dc3a refs/heads/fix-lsp-cache-dir
ff65e1cd687d0c144e98b09e4d7a164f8b6bfd3e refs/heads/gh-pages
17e53cf01badebc2abef7df375903da71bf884d8 refs/heads/master
7b8f8a2dccb0715ff1c1c411abf40b2ff6cec30b refs/heads/vim-plug
26b8a0ba594af1068997c70c4ef0f503571557b3 refs/heads/vundle
列表分支:
$ git branch
abc
* master
$ git branch -r
origin/HEAD -> origin/master
origin/master
upstream/gh-pages
upstream/master
upstream/vim-plug
upstream/vundle
$ git branch -a
abc
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/gh-pages
remotes/upstream/master
remotes/upstream/vim-plug
remotes/upstream/vundle
分支abc
是我尚未推送的本地分支。
并且我尝试了几种切换到分支的方法,例如fix-lsp-cache-dir
$ git checkout fix-lsp-cache-dir
error: pathspec 'fix-lsp-cache-dir' did not match any file(s) known to gi
$ git checkout -t origin/fix-lsp-cache-dir
fatal: 'origin/fix-lsp-cache-dir' is not a commit and a branch 'fix-lsp-cache-dir' cannot be created from it
我尝试了google,但是所有建议的方法都失败了。
那我该怎么做才能切换到git ls-remote
中的仅分支列表
答案 0 :(得分:3)
您需要先git fetch
。
检查您的git config remote.origin确实显示fetch refspec,如:
fetch = +refs/heads/*:refs/remotes/origin/*
这会将fix-lsp-cache-dir
导入您的存储库,您将可以检出该分支。
结帐或... soon git switch
。
remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master
那只会获取大师,别无他物。
cd /path/to/my/repo
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
那应该解决它。