以下命令有什么区别?
git checkout master vs git checkout origin/master
git checkout master vs git checkout origin/master
git checkout master
命令用于检出本地分支,是常见的操作。
git checkout origin/master
命令看起来类似,可能会让你认为你要检出一个分支,但实际上这里的引用是一个远程跟踪分支。这些引用不是本地分支,它们只是origin
远程分支的镜像,只能通过git fetch
更新。
在git的架构中,不能像本地分支一样直接检出这些引用,所以只能退而求其次:检出这个引用当前所指向的提交。
直接检出提交而非分支的结果就是所谓的分离头指针状态
(detached HEAD state)。虽然名字听起来有点可怕,但它并不会损坏你的代码库,只是意味着你的HEAD
指向的是一个提交,而非一个分支。这种情况可以通过检出一个分支来“解决”。
git branch
命令导致的,虽然很困惑,但确实可以这样做。(不要这样做) - Romain Valeri