我通过
当我使用
如果我使用
然而,如果我先使用
git fetch origin name-of-branch:refs/remotes/name-of-branch
命令获取远程分支。当我使用
git checkout name-of-branch
命令时,会进入分离头状态。现在,我可以使用 git checkout -b some-branch-name
命令到达一个命名分支。是否有一种方法可以在一个命令中将远程分支检出到命名分支(甚至是同名的分支)?如果我使用
git checkout -b name-of-remote-branch
命令(即使用相同名称),然后检出另一个分支,再次检出该分支 git checkout name-of-remote-branch
,则会出现以下错误信息:warning: refname 'name-of-remote-branch' is ambiguous.
然而,如果我先使用
git pull
,然后再使用checkout,就不会发生这种情况:Branch name-of-pulled-branch set up to track remote branch name-of-pulled-branch from origin
我认为与所获取分支有关的许多问题是因为它没有设置跟踪远程分支。这是为什么?有没有办法检出抓取的分支,并将其设置为跟踪远程分支,就像使用了git pull
一样?
refs/remotes/origin/name-of-branch
(假设有一个名为origin
的远程),而不是没有远程名称的版本。当你拼写第二个版本时,它会使git的“按我的意思做”算法略微出错。当你使用git pull
时,你并没有提供一个“奇怪”的远程分支名称形式。 - torekname-of-branch:refs/...
相反吗? - Explosion Pillsfetch
的额外参数是“refspecs”,所以“大多数情况下是的” :) 。只是在x:y
中,x
部分是本地名称,而y
部分是远程名称,我只输入了远程名称。 (通常我只运行git fetch -p <remote>
或等效命令,让所有新的远程分支按需出现。)另请参阅手册中的长描述,:y
部分处理得有点奇怪。 - torek