• 技术文章 >开发工具 >git

    git中checkout的用法是什么

    WBOYWBOY2022-01-04 16:48:19原创38727

    在git中,checkout是“检出”的意思,该命令用于切换分支或者恢复工作树文件,语法为“git checkout branchName”或者“ 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的用法是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:git
    上一篇:git怎样批量删除分支 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文快速教你用VuePress + Github Pages搭建一个博客(实战)• git中gui是什么意思• git rebase是什么意思• git中暂存区和本地库的区别是什么• git和npm的区别是什么
    1/1

    PHP中文网