git中checkout的用法是什么

发布时间 - 2022-01-04 00:00:00    点击率:
在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  []

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

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

方法一:使用git checkout -b

 git checkout -b newBranch  origin/newBranch

方法二:使用git branch []

git branch newBranch origin/newBranch
git checkout newBranch

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

2. 深入

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

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

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

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

3. 扩展

用法1:

 git checkout [] [--] 

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

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

例如:

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

git checkout  [--] 

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

用法2:

  git checkout -b  []

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

 1. git branch   []
 2. git checkout 

推荐学习:《Git教程


# git  # 我们可以  # 可以看到  # 都是  # 该文件  # 切换到  # 区为  # 可以说  # 两种  # 可以用  # 只会 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  如何快速搭建自助建站会员专属系统?  Laravel如何自定义分页视图?(Pagination示例)  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Laravel如何使用Service Container和依赖注入?(代码示例)  如何获取上海专业网站定制建站电话?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何打造高效商业网站?建站目的决定转化率  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何实现多对多模型关联?(Eloquent教程)  如何用低价快速搭建高质量网站?  详解jQuery停止动画——stop()方法的使用  详解vue.js组件化开发实践  网站制作壁纸教程视频,电脑壁纸网站?  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  网站建设保证美观性,需要考虑的几点问题!  ,在苏州找工作,上哪个网站比较好?  python中快速进行多个字符替换的方法小结  如何基于云服务器快速搭建个人网站?  如何为不同团队 ID 动态生成多个独立按钮  如何在景安服务器上快速搭建个人网站?  Python文件异常处理策略_健壮性说明【指导】  使用Dockerfile构建java web环境  JavaScript实现Fly Bird小游戏  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel如何处理异常和错误?(Handler示例)  网站建设要注意的标准 促进网站用户好感度!  高防服务器如何保障网站安全无虞?  如何在阿里云高效完成企业建站全流程?  什么是javascript作用域_全局和局部作用域有什么区别?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  *服务器网站为何频现安全漏洞?  如何快速辨别茅台真假?关键步骤解析  Bootstrap整体框架之JavaScript插件架构  php json中文编码为null的解决办法  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  浅述节点的创建及常见功能的实现  如何在IIS服务器上快速部署高效网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?