git中checkout的用法是什么

本文操作环境:Windows10系统、Git2.30.0版、Dell G3电脑。

git中checkout的用法是什么

切克闹checkout)作为git中最为常用的命令之一,对它使用的熟练程度直接决定了你对git理解和掌握的熟练程度,因此我们有理由为这个命令好好的做一下总结。

1. 基础

checkout最常用的用法莫过于对于工作分支的切换了:

git checkout branchName

该命令会将当前工作分支切换到branchName。另外,可以通过下面的命令在新分支创建的同时切换分支:

git checkout -b newBranch

该命令相当于下面这两条命令的执行结果:

1. git branch newBranch 
2. git checkout newBranch

该命令的完全体为:

  git checkout -b|-B <new_branch> [<start point>]

该命令的一个应用场景为:当我们刚从git上clone一个项目后,我们可以查看该项目的分支情况

可以看到,克隆完后,只会默认创建一个master本地分支,其他都是远程分支,此时如果我们想切换到newBranch的远程分支该怎么操作呢?方法有很多种,我们简单介绍两种:

方法一:使用git checkout -b

 git checkout -b newBranch  origin/newBranch

方法二:使用git branch <branchname> [<start-point>]

git branch newBranch origin/newBranch
git checkout newBranch

方法一其实是方法二的简化版

2. 深入

要想更深入的了解checkout,我们需要了解checkout的作用机制。该命令的主要关联目标其实是.git 文件夹下的HEAD文件,我们可以查看工程下面的.git文件夹:

该文件夹下HEAD文件记录了当前HEAD的信息,继续查看HEAD文件:

27.png

可以看到当前HEAD文件指向了refs/heads路径下的master文件,该文件记录了master分支最近的一次commit id,说明当前HEAD指向了master分支。如果我们将当前分支切换到newBranch 分支,我们再看HEAD文件:

可以看到HEAD文件内容指向了newBranch分支

28.png

3. 扩展

用法1:

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

该命令主要用于检出某一个指定文件。

如果不填写commit id,则默认会从暂存区检出该文件,如果暂存区为空,则该文件会回滚到最近一次的提交状态。

例如:

当暂存区为空,如果我们想要放弃对某一个文件的修改,可以用这个命令进行撤销:

git checkout  [--] <paths>

如果填写commit id(既可以是commit hash也可以是分支名称还可以说tag,其本质上都是commit hash),则会从指定commit hash中检出该文件。用于恢复某一个文件到某一个提交状态。

用法2:

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

该命令是文章开头部分所说的checkout常见用法的扩展,我们可以指定某一个分支或者某一次提交来创建新的分支,并且切换到该分支下,该命令相当于下面两条命令的执行结果:

 1. git branch  <new_branch> [<start_point>]
 2. git checkout <new_branch>

推荐学习:《Git教程

以上就是git中checkout的用法是什么的详细内容,更多请关注风君子博客其它相关文章!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注