git checkout 命令详解—— Git 学习笔记 16

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013490896/article/details/82953474

git checkout 命令详解

概览

git checkout 这条命令的常用格式如下:

用法一

git checkout [<commit>] [--] <paths>

用于拿暂存区的文件覆盖工作区的文件,或者用指定提交中的文件覆盖暂存区和工作区中对应的文件。

用法二

git checkout <branch>

用于切换分支。

用法三

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>,则会拿暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区和工作区中对应的文件。

2. git checkout <branch>

第二种用法(不使用路径<paths>的用法)则会改变 HEAD 头指针。之所以后面的参数写作<branch>,是因为只有 HEAD 切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”(Detached HEAD)的状态。在“分离头指针”状态下的提交不能被引用关联到而可能会丢失。所以用法二最主要的作用就是切换分支。

3. git checkout -b <new_branch> [<start_point>]

-b 选项表示创建新分支。如果指定了 <start_point> ,那么新的分支将指向<start_point> ,否则新的分支指向当前的 HEAD. 新分支和我们熟悉的 master 分支并没有什么实质的不同,都是在refs/heads命名空间下的引用。第三种用法用于分支的创建并切换。


参考资料

《Git 权威指南》

猜你喜欢

转载自blog.csdn.net/u013490896/article/details/82953474