当前位置: 首页 > article >正文

Git系列之git checkout

git checkout 是 Git 中最常用的命令之一,主要用于切换分支、恢复文件或检出特定提交。以下是关于 git checkout 的所有指令、详细解释及实际应用场景的全面说明。


1. 切换分支

1.1 切换到现有分支

git checkout <branch-name>

作用:切换到指定的分支。
场景:在不同的功能分支之间切换。
示例

git checkout main

1.2 创建并切换到新分支

git checkout -b <new-branch-name>

作用:创建一个新分支并立即切换到该分支。
场景:开始新功能开发或修复 Bug。
示例

git checkout -b feature-login

1.3 基于特定提交创建并切换分支

git checkout -b <new-branch-name> <commit-hash>

作用:基于指定提交创建一个新分支并切换到该分支。
场景:从历史提交中创建一个新分支进行修复或实验。
示例

git checkout -b hotfix-bug abc1234

2. 检出特定提交

2.1 检出提交(分离头指针状态)

git checkout <commit-hash>

作用:切换到指定提交,进入“分离头指针”状态。
场景:查看历史提交的内容或测试历史状态。
注意:在分离头指针状态下,提交的更改不会关联到任何分支。
示例

git checkout abc1234

2.2 检出 Tag 对应的提交

git checkout <tag-name>

作用:切换到指定标签对应的提交,进入“分离头指针”状态。
场景:查看或测试特定版本的内容。
示例

git checkout v1.0.0

3. 恢复文件

3.1 恢复工作区文件

git checkout -- <file-path>

作用:将工作区中的文件恢复到最近一次提交的状态。
场景:撤销对文件的未提交更改。
示例

git checkout -- src/index.js

3.2 从指定提交恢复文件

git checkout <commit-hash> -- <file-path>

作用:将指定文件恢复到特定提交的状态。
场景:恢复文件到历史版本。
示例

git checkout abc1234 -- src/index.js

4. 恢复所有文件

4.1 恢复工作区所有文件

git checkout .

作用:将工作区中的所有文件恢复到最近一次提交的状态。
场景:撤销所有未提交的更改。
示例

git checkout .

5. 切换分支并覆盖工作区

5.1 强制切换分支

git checkout -f <branch-name>

作用:强制切换到指定分支,丢弃所有未提交的更改。
场景:快速切换分支,无需保存当前工作区的更改。
示例

git checkout -f main

6. 从贮藏区恢复

6.1 应用最近的贮藏

git checkout stash@{0}

作用:应用最近的贮藏内容到工作区。
场景:恢复之前贮藏的更改。
示例

git checkout stash@{0}

6.2 应用指定贮藏

git checkout stash@{<index>}

作用:应用指定贮藏内容到工作区。
场景:恢复特定的贮藏内容。
示例

git checkout stash@{2}

7. 检出远程分支

7.1 检出远程分支并创建本地分支

git checkout -b <local-branch-name> origin/<remote-branch-name>

作用:基于远程分支创建并切换到本地分支。
场景:开始跟踪远程分支。
示例

git checkout -b feature-login origin/feature-login

8. 切换到上一个分支

git checkout -

作用:切换到上一个分支。
场景:快速在两个分支之间切换。
示例

git checkout -

9. 综合应用场景

场景 1:修复 Bug

  1. main 分支创建一个新分支:
    git checkout -b hotfix-bug
    
  2. 修复 Bug 并提交更改:
    git add .
    git commit -m "Fix bug in login"
    
  3. 切换回 main 分支并合并修复:
    git checkout main
    git merge hotfix-bug
    

场景 2:恢复文件到历史版本

  1. 查看文件的历史提交:
    git log -- src/index.js
    
  2. 恢复文件到指定提交:
    git checkout abc1234 -- src/index.js
    
  3. 提交恢复后的文件:
    git commit -m "Restore src/index.js to version abc1234"
    

场景 3:应用贮藏

  1. 贮藏当前工作区的更改:
    git stash
    
  2. 切换到其他分支进行紧急修复:
    git checkout hotfix
    
  3. 修复完成后切换回原分支并应用贮藏:
    git checkout feature-login
    git stash apply
    

10. 总结

git checkout 是 Git 中功能强大的命令,支持以下主要操作:
• 切换分支:git checkout <branch-name>
• 创建并切换分支:git checkout -b <new-branch-name>
• 检出提交或标签:git checkout <commit-hash>git checkout <tag-name>
• 恢复文件:git checkout -- <file-path>
• 应用贮藏:git checkout stash@{<index>}

通过灵活使用 git checkout,可以高效管理分支、恢复文件和处理贮藏内容,提升开发效率。

#参考文档
Git系列详细介绍和操作

相关文章:

Git系列之git checkout

git checkout 是 Git 中最常用的命令之一&#xff0c;主要用于切换分支、恢复文件或检出特定提交。以下是关于 git checkout 的所有指令、详细解释及实际应用场景的全面说明。 1. 切换分支 1.1 切换到现有分支 git checkout <branch-name>• 作用&#xff1a;切换到指定…...

IDEA(十一)调整新版本的工具栏显示Git操作(pull、commit、push、revert等)

目录 一、背景二、操作步骤2.1 开启新 UI 样式2.2 设置 Tool Window 工具栏 一、背景 好久没有更新 IDEA 了&#xff0c;更新之后发现 IDEA 的工具栏消失了。一番操作之后&#xff0c;终于把 IDEA 的工具栏的设置调整好了&#xff0c;在此进行记录调整步骤&#xff0c;供大家学…...

C++编程:进阶阶段—4.2对象

目录 4.2 对象特征 4.2.1 构造函数和析构函数 4.2.2 构造函数的分类 4.2.3 拷贝函数调用时机 4.2.4 构造函数调用规则 4.2.5 深拷贝与浅拷贝 4.2.6 初始化列表 4.2.7 类对象作为类成员 4.2.8 静态成员 4.2.9 成员变量和成员函数的存储 4.2.10 this指针 4.2.11 空指针…...

决策树的核心思想

一、决策树的核心思想 本质&#xff1a;通过特征判断对数据集递归划分&#xff0c;形成树形结构。目标&#xff1a;生成一组“若-则”规则&#xff0c;使数据划分到叶子节点时尽可能纯净。关键流程&#xff1a; 特征选择&#xff1a;选择最佳分裂特征&#xff08;如信息增益最…...

TensorFlow.js 全面解析:在浏览器中构建机器学习应用

TensorFlow.js 全面解析&#xff1a;在浏览器中构建机器学习应用 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 TensorFlow.js 全面解析&#x…...

CI/CD—Jenkins配置Poll SCM触发自动构建

Poll SCM简介 在 Jenkins 等持续集成工具中&#xff0c;“Poll SCM” 是一种用于轮询软件配置管理&#xff08;SCM&#xff09;系统以检查代码变更的机制&#xff0c;以下是对它的详细介绍&#xff1a; 作用 “Poll SCM” 允许 Jenkins 定期检查指定的 SCM 系统&#xff08;如 …...

《云原生技术:DeepSeek分布式推理的效能倍增器》

在当今人工智能飞速发展的时代&#xff0c;大语言模型的推理能力成为了衡量其性能的关键指标。DeepSeek作为人工智能领域的重要参与者&#xff0c;致力于提升模型的推理效率和准确性。而云原生技术的出现&#xff0c;为DeepSeek实现更高效的分布式推理提供了强大的支持。 云原…...

AI与SEO关键词智能解析

内容概要 人工智能技术正重塑搜索引擎优化的底层逻辑&#xff0c;其核心突破体现在关键词解析维度的结构性升级。通过机器学习算法对海量搜索数据的动态学习&#xff0c;AI不仅能够识别传统TF-IDF模型中的高频词汇&#xff0c;更能捕捉语义网络中隐含的关联特征。下表展示了传…...

OpenHarmony子系统开发 -- 构建系统编码规范与最佳实践

OpenHarmony子系统开发 -- 构建系统编码规范与最佳实践 概述 gn是generate ninja的缩写&#xff0c;它是一个元编译系统&#xff08;meta-build system&#xff09;,是ninja的前端&#xff0c;gn和ninja结合起来&#xff0c;完成OpenHarmony操作系统的编译任务。 gn简介 目…...

1-002:MySQL InnoDB引擎中的聚簇索引和非聚簇索引有什么区别?

在 MySQL InnoDB 存储引擎 中&#xff0c;索引主要分为 聚簇索引&#xff08;Clustered Index&#xff09; 和 非聚簇索引&#xff08;Secondary Index&#xff09;。它们的主要区别如下&#xff1a; 1. 聚簇索引&#xff08;Clustered Index&#xff09; 定义 聚簇索引是表数…...

STM32之BKP

VBAT备用电源。接的时候和主电源共地&#xff0c;正极接在一起&#xff0c;中间连接一个100nf的电容。BKP是RAM存储器。 四组VDD都要接到3.3V的电源上&#xff0c;要使用备用电池&#xff0c;就把电池正极接到VBAT&#xff0c;负极跟主电源共地。 TEMPER引脚先加一个默认的上拉…...

c++的基础排序算法

一、快速排序 1. 选择基准值&#xff08;Pivot&#xff09; 作用 &#xff1a;从数组中选择一个元素作为基准&#xff08;Pivot&#xff09;&#xff0c;用于划分数组。常见选择方式 &#xff1a; 固定选择最后一个元素&#xff08;如示例代码&#xff09;。随机选择&#xf…...

基于Spring3的抽奖系统

注&#xff1a;项目git仓库地址&#xff1a;demo.lottery 小五Z/Spring items - 码云 - 开源中国 目录 注&#xff1a;项目git仓库地址&#xff1a;demo.lottery 小五Z/Spring items - 码云 - 开源中国 项目具体代码可参考仓库源码&#xff0c;本文只讲解重点代码逻辑 一…...

基于qiime2的16S数据分析全流程:从导入数据到下游分析一条龙

目录 创建metadata 把数据导入qiime2 去除引物序列 双端合并 &#xff08;dada2不需要&#xff09; 质控 &#xff08;dada2不需要&#xff09; 使用deblur获得特征序列 使用dada2生成代表序列与特征表 物种鉴定 可视化物种鉴定结果 构建进化树&#xff08;ITS一般不构建进化树…...

【Linux系统编程】基本IO函数

目录 1、open 函数2、create 函数3、write 函数4、read 函数5、lseek 函数6、access 函数7、unlink 函数8、remove 函数9、fcntl 函数写锁互斥锁示例读锁共享锁示例 1、open 函数 头文件 #include<sys/types.h> #include<sys/stat.h>#include<fcntl.h>…...

Deepseek应用技巧-chatbox搭建前端问答

目标&#xff1a;书接上回&#xff0c;由于本地私有化部署了deepseek的大模型&#xff0c;那怎么能够投入生产呢&#xff0c;那就必须有一个前端的应用界面&#xff0c;好在已经有很多的前人已经帮我们把前段应用给搭建好了&#xff0c;我们使用就可以啦&#xff0c;今天我们就…...

OpenAI API模型ChatGPT各模型功能对比,o1、o1Pro、GPT-4o、GPT-4.5调用次数限制附ChatGPT订阅教程

本文包含OpenAI API模型对比页面以及ChatGPT各模型功能对比表 - 截至2025最新整理数据&#xff1a;包含模型分类及描述&#xff1b;调用次数限制&#xff1b; 包含模型的类型有&#xff1a; Chat 模型&#xff08;如 GPT-4o、GPT-4.5、GPT-4&#xff09;专注于对话&#xff0c…...

Fast DDS Security--秘钥交换

Fast DDS Security模块中默认使用Diffie-Hellman算法进行秘钥交换。Diffie-Hellman 算法&#xff08;简称 DH 算法&#xff09;是一个非常重要的加密协议&#xff0c;用于在不安全的通信通道中安全地交换密钥。该算法通过利用数学中的离散对数问题来生成共享密钥&#xff0c;使…...

从0开始的操作系统手搓教程33:挂载我们的文件系统

目录 代码实现 添加到初始化上 上电看现象 挂载分区可能是一些朋友不理解的——实际上挂载就是将我们的文件系统封装好了的设备&#xff08;硬盘啊&#xff0c;SD卡啊&#xff0c;U盘啊等等&#xff09;&#xff0c;挂到我们的默认分区路径下。这样我们就能访问到了&#xff…...

基于muduo+mysql+jsoncpp的简易HTTPWebServer

一、项目介绍 本项目基于C语言、陈硕老师的muduo网络库、mysql数据库以及jsoncpp&#xff0c;服务器监听两个端口&#xff0c;一个端口用于处理http请求&#xff0c;另一个端口用于处理发送来的json数据。 此项目在实现时&#xff0c;识别出车牌后打包为json数据发送给后端服务…...

【Go学习实战】03-2-博客查询及登录

【Go学习实战】03-2-博客查询及登录 读取数据库数据初始化数据库首页真实数据分类查询分类查询测试 文章查询文章查询测试 分类文章列表测试 登录功能登录页面登录接口获取json参数登录失败测试 md5加密jwt工具 登录成功测试 文章详情测试 读取数据库数据 因为我们之前的数据都…...

《Python实战进阶》No20: 网络爬虫开发:Scrapy框架详解

No20: 网络爬虫开发&#xff1a;Scrapy框架详解 摘要 本文深入解析Scrapy核心架构&#xff0c;通过中间件链式处理、布隆过滤器增量爬取、Splash动态渲染、分布式指纹策略四大核心技术&#xff0c;结合政府数据爬取与动态API逆向工程实战案例&#xff0c;构建企业级爬虫系统。…...

2021 年 9 月青少年软编等考 C 语言六级真题解析

目录 T1. 合法出栈序列思路分析T2. 奇怪的括号思路分析T3. 区间合并思路分析T4. 双端队列思路分析T1. 合法出栈序列 题目链接:SOJ D1110 给定一个由不同小写字母构成的长度不超过 8 8 8 的字符串 x x x,现在要将该字符串的字符依次压入栈中,然后再全部弹出。要求左边的字…...

Linux:多线程(单例模式,其他常见的锁,读者写者问题)

目录 单例模式 什么是设计模式 单例模式介绍 饿汉实现方式和懒汉实现方式 其他常见的各种锁 自旋锁 读者写者问题 逻辑过程 接口介绍 单例模式 什么是设计模式 设计模式就是一些大佬在编写代码的过程中&#xff0c;针对一些经典常见场景&#xff0c;给定对应解决方案&…...

shell 脚本的编写学习

学习编写 Shell 脚本是 Linux/Unix 系统管理和自动化的一个非常有用的技能。Shell 脚本是一些 Shell 命令的集合&#xff0c;用户可以用它来自动执行任务、简化工作流程、管理系统等。下面是一个 Shell 脚本学习的入门指南&#xff1a; 1. Shell 脚本基础 Shell 脚本通常是以…...

【氮化镓】高输入功率应力诱导的GaN 在下的退化LNA退化

2019年,中国工程物理研究院电子工程研究所的Tong等人基于实验与第一性原理计算方法,研究了Ka波段GaN低噪声放大器(LNA)在高输入功率应力下的退化机制。实验结果表明,在27 GHz下施加1 W连续波(CW)输入功率应力后,LNA的增益下降约1 dB,噪声系数(NF)增加约0.7 dB。进一…...

根据开始和结束日期,获取每一天和每个月的开始和结束日期的list

获取开始日期与结束日期之间每天的list /*** 根据传入的开始时间和结束时间,筛选出所有的天的list;** param startTime* param endTime*/public Map<String, List<String>> fetchDayListBetweenStartAndEnd(String startTime, String endTime) {// 创建mapMap<…...

Javaweb后端文件上传@value注解

文件本地存储磁盘 阿里云oss准备工作 阿里云oss入门程序 要重启一下idea&#xff0c;上面有cmd 阿里云oss案例集成 优化 用spring中的value注解...

git规范提交之commitizen conventional-changelog-cli 安装

一、引言 使用规范的提交信息可以让项目更加模块化、易于维护和理解&#xff0c;同时也便于自动化工具&#xff08;如发布工具或 Changelog 生成器&#xff09;解析和处理提交记录。 通过编写符合规范的提交消息&#xff0c;可以让团队和协作者更好地理解项目的变更历史和版本…...

Java/Kotlin逆向基础与Smali语法精解

1. 法律警示与道德边界 1.1 司法判例深度剖析 案例一&#xff1a;2021年某游戏外挂团伙刑事案 犯罪手法&#xff1a;逆向《王者荣耀》通信协议&#xff0c;修改战斗数据包 技术细节&#xff1a;Hook libil2cpp.so的SendPacket函数 量刑依据&#xff1a;非法经营罪&#xff…...