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

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

相关文章:

  • 发起请求的步骤
  • Spring Boot整合WebSocket
  • 基于深度学习的中文文本情感分析系统
  • EasyTwin全新体验 | 春启新章,智焕新生
  • 隧道定向号角喇叭为隧道安全保驾护航
  • Microsof Visual Studio Code 安装教程(中文设置)
  • 计算机网络基础知识(web漏洞解析与攻防实战)
  • stm32week6
  • linux docker相关指令
  • Centos磁盘扩容
  • 企业招聘能力提升之道:突破困境,精准纳才
  • Synology 部署的 WordPress 無法升級至最新版本時,可以透過以下改良版指南進行排查和解決。
  • springboot3.X 无法解析parameter参数问题
  • git规范提交之commitizen conventional-changelog-cli 安装
  • 使用Python和p5.js创建的迷你游戏示例,该游戏包含多个屏幕和动画,满足在画布上显示图像、使用键盘命令移动图像
  • [GHCTF 2025]SQL??? 【sqlite注入】
  • java中过滤器
  • 反码与补码
  • 【阿里云】控制台使用指南:从创建ECS到系统诊断测评
  • (base)user1@ubuntu:~$pip install xxxx(xxxx表示第三方库) 分析
  • 下周或迎外贸“抢出口”高峰,跨境电商敏感货物如何便利化“登机”?
  • 贞丰古城:新垣旧梦间的商脉与烟火
  • 霍步刚任辽宁沈阳市委书记
  • 韩正会见美国景顺集团董事会主席瓦格纳
  • 年在沪纳税350亿人民币,这些全球头部企业表示“对上海承诺不会变”
  • 联合国报告:全球经济前景恶化,面临高度不确定性