什么是git checkout master和git checkout origin/master的区别?

3
以下命令有什么区别?
git checkout master vs git checkout origin/master
1个回答

11

git checkout master 命令用于检出本地分支,是常见的操作。

git checkout origin/master 命令看起来类似,可能会让你认为你要检出一个分支,但实际上这里的引用是一个远程跟踪分支。这些引用不是本地分支,它们只是origin远程分支的镜像,只能通过git fetch更新。 在git的架构中,不能像本地分支一样直接检出这些引用,所以只能退而求其次:检出这个引用当前所指向的提交

直接检出提交而非分支的结果就是所谓的分离头指针状态(detached HEAD state)。虽然名字听起来有点可怕,但它并不会损坏你的代码库,只是意味着你的HEAD指向的是一个提交,而非一个分支。这种情况可以通过检出一个分支来“解决”。


这可能是一个愚蠢的问题,但如果您有一个名为“origin/master”的本地分支,会发生什么?这真的存在吗? - sradforth
是的,从技术上讲你可以这样做。这通常是由于错误的 git branch 命令导致的,虽然很困惑,但确实可以这样做。(不要这样做) - Romain Valeri

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