概览
git checkout 这条命令的常用格式如下:
用法一
git checkout [<commit>] [--] <paths>
1
用于拿暂存区的文件覆盖工作区的文件,或者用指定提交中的文件覆盖暂存区和工作区中对应的文件。
用法二
git checkout <branch>
1
用于切换分支。
用法三
git checkout -b <new_branch> [<start_point>]
1
用于创建并切换分支。
详细说明
- git checkout [<commit>] [--] <paths>
第一种用法在命令中包含路径 <paths>。为了避免路径<paths>和引用(或者提交)<commit> 同名而冲突,可以在<paths>前用两个连续的短线减号作为分隔。
<commit> 是可选项,如果省略则相当于从暂存区(index)检出。这和 git reset 重置命令(例如 git reset HEAD <file>)大不相同:重置的默认值是 HEAD,而检出的默认值是暂存区。因此重置一般用于重置暂存区(除非使用--hard参数,否则不重置工作区),而检出命令主要是覆盖工作区(如果<commit>不省略,也会替换暂存区中相应的文件)。
第一种用法(包含了路径 <paths> 的用法)不会改变 HEAD 头指针,主要是用于拿指定版本的文件覆盖工作区中对应的文件。如果省略<commit>,则会拿暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区和工作区中对应的文件。
- git checkout <branch>
第二种用法(不使用路径<paths>的用法)则会改变 HEAD 头指针。之所以后面的参数写作<branch>,是因为只有 HEAD 切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”(Detached HEAD)的状态。在“分离头指针”状态下的提交不能被引用关联到而可能会丢失。所以用法二最主要的作用就是切换分支。
- git checkout -b <new_branch> [<start_point>]
-b 选项表示创建新分支。如果指定了 <start_point> ,那么新的分支将指向<start_point> ,否则新的分支指向当前的 HEAD. 新分支和我们熟悉的 master 分支并没有什么实质的不同,都是在refs/heads命名空间下的引用。第三种用法用于分支的创建并切换。
————————————————
版权声明:本文为CSDN博主「车子chezi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/longintchar/article/details/82953474
网友评论