我在做一个有两个遥控器的项目,一个叫origin一个叫vsts。默认遥控器为origin。下面是git remote -v的输出,有些部分匿名为***
$ git remote -vorigin [email protected]:***/***.git (fetch)origin [email protected]:***/***.git (push)vsts ssh://***@vs-ssh.visualstudio.com:***/DefaultCollection/***/_ssh/*** (fetch)vsts ssh://***@vs-ssh.visualstudio.com:***/DefaultCollection/***/_ssh/*** (push)
我正在尝试从vsts签出一个新分支。它被称为release/1.4.1。我使用的是git 2.16.x,所以我应该能够使用git checkout,但这就是发生的情况:
$ git checkout release/1.4.1error: pathspec 'release/1.4.1' did not match any file(s) known to git.
我想可能是因为我的意思是origin。所以我试试这个:
$ git checkout vsts/release/1.4.1error: pathspec 'vsts/release/1.4.1' did not match any file(s) known to git.
我应该确保吉特能找到树枝。因此,我使用git ls-remote获取远程分支的列表:
$ git ls-remote vsts...abcde*** refs/heads/release/1.4.1...
我得到一个分支和提交散列的列表,release/1.4.1绝对是其中之一。
我尝试了更多的事情:
$ git checkout -b release/1.4.1 vsts/release/1.4.1fatal: 'vsts/release/1.4.1' is not a commit and a branch 'release/1.4.1' cannot be created from it
$ git fetch vsts release/1.4.1From ssh://vs-ssh.visualstudio.com:***/DefaultCollection/***/_ssh/*** * branch release/1.4.1 -> FETCH_HEAD
(在这个命令之后,我再次尝试前面的所有命令。结果不变。)
$ git checkout -b release/1.4.1 remotes/vsts/release/1.4.1fatal: 'remotes/vsts/release/1.4.1' is not a commit and a branch 'release/1.4.1' cannot be created from it
$ git checkout -b release/1.4.1 remotes/vsts/refs/heads/release/1.4.1fatal: 'remotes/vsts/refs/heads/release/1.4.1' is not a commit and a branch 'release/1.4.1' cannot be created from it
如果我尝试git pull vsts/release/1.4.1它成功地将远程分支release/1.4.1合并到当前分支,但这不是一个有用的解决方法。
我还能试什么?我不明白为什么我不能查到远程分支。

最佳答案

问题是我的本地git配置混乱。我用git config --local -e在vim中打开它,发现这个部分:
[remote "vsts"] url = ssh://***@vs-ssh.visualstudio.com:***/DefaultCollection/***/_ssh/*** fetch = +refs/heads/dev:refs/remotes/vsts/dev
它看起来只被设置为获取dev。我不知道怎么会这样,但我把它改成了:
[remote "vsts"] url = ssh://***@vs-ssh.visualstudio.com:***/DefaultCollection/***/_ssh/*** fetch = +refs/heads/*:refs/remotes/vsts/*
在那之后我能做到:
$ git checkout release/1.4.1Switched to a new branch 'release/1.4.1'Branch 'release/1.4.1' set up to track remote branch 'release/1.4.1' from 'vsts'.

关于git - 为什么Git不让我从备用 Remote 中 checkout 分支?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49635617/

10-13 07:12