Git系列之git checkout

devtools/2025/3/14 6:50:10/

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系列详细介绍和操作


http://www.ppmy.cn/devtools/166619.html

相关文章

电力行业能源管理系统(Energy Management System, EMS)的技术实现方案

以下是电力行业能源管理系统(Energy Management System, EMS)的技术实现方案,涵盖系统架构、关键技术、功能模块及实施步骤等内容: 一、系统架构设计 采用分层架构设计,实现数据采集、传输、处理、分析和应用的全流程管理: 1. 感知层 设备选型: 智能电表:支持双向通…

11 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar组件深度剖析(二)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 第二篇&#xff1a;探秘Avatar组件的核心实现机制 1. 组件结构设计 2. 状态管理 2.1 组件状态定义 Component export struct Avatar {// 私有属…

Docker基础篇——Ubuntu下Docker安装

大家好我是木木&#xff0c;在当今快速发展的云计算与云原生时代&#xff0c;容器化技术蓬勃兴起&#xff0c;Docker 作为实现容器化的主流工具之一&#xff0c;为开发者和运维人员带来了极大的便捷 。下面我们一起进行Docker安装。 Docker的官方Ubuntu安装文档&#xff0c;如…

HTML 学习路线图

以下是一份极为详细的 HTML 学习路线图,从基础认知到高级应用全面覆盖,适合从零开始学习 HTML 的人逐步深入掌握这门技术。 入门基础(第 1 - 2 周) 编程环境搭建 文本编辑器选择:了解常见文本编辑器,如 Visual Studio Code(有丰富插件生态)、Sublime Text(轻量级且响…

Cursor配置Golang开发环境

熟悉IDE, 而不熟vscode的开发小伙伴们可以参考 参考李文周老师的教程配置基础环境 https://www.liwenzhou.com/posts/Go/vscode/ 贴出的 配置文件为 {"workbench.colorTheme": "Default Dark","terminal.integrated.defaultProfile.windows":…

字节青训营后端方向的个人总结(2025年3月4日)

字节青训营的结营总结&#xff08;25寒假&#xff09; ——致青训营队友的一封信 明天就是大项目结项的日子了&#xff0c;不知道大家在这方面学习、精进了多少&#xff0c;也许有的朋友收获颇多并且已经完成了项目&#xff0c;我个人对此表示由衷的恭喜和祝贺。 当初自告奋…

版本控制器Git(1)

文章目录 前言一、初识Git问题引入解决方案注意事项 二、Git安装三、Git配置与基本操作Git创建Git配置用户名称和地址认识工作区、暂存区、版本库添加文件到仓库添加文件到暂存区提交暂存区内容到本地仓库 查看提交历史 四、Git 暂存区、HEAD、对象库及文件Git内部结构概览查看…

基于生成式人工智能的网络安全主动防御技术(上)

文章目录 前言1 PPDR安全模型相关概念1.1 风险分析1.2 安全策略1.3 安全防护1.4 安全检测1.5 响应与恢复1.6 安全认证 2 网络安全动态防御模型设计2.1 设计思想2.2 模型体系结构设计2.2.1 管理控制模块2.2.2 入侵检测模块2.2.3 重定向模块2.2.4 入侵诱骗模块2.2.5 资源保护模块…