当前位置: 首页 > 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系列详细介绍和操作


http://www.kler.cn/a/579915.html

相关文章:

  • (枚举专题)组合数枚举
  • [MERN] 使用 socket.io 实现即时通信功能
  • 力扣-单调栈-84 柱状图中最大的矩形
  • Leetcode-整数反转
  • 每日学Java之一万个为什么
  • 分布式事务的原理
  • 网络安全之tcpdump工具
  • 隐私保护在 Facebook 内容审核系统中的应用
  • 机器学习篇——决策树基础
  • python采集京东商品详情数据,API接口文档说明
  • Elasticsearch 7.x入门学习-系统架构与工作流程
  • 人工智能直通车系列13【机器学习基础】(线性回归模型实现scikit - learn)
  • 图论——差分约束
  • 贪心算法三
  • Android Glide 框架线程管理模块原理的源码级别深入分析
  • C++基础算法:高精度
  • 项目-苍穹外卖(二)增加用户+用户分页查询
  • BUUCTF [GUET-CTF2019]soul sipse 1
  • K8S 集群搭建——cri-dockerd版
  • KUKA机器人:智能制造的先锋力量