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

git checkout 详解

git checkout 是 Git 中最常用的命令之一,主要用于切换分支恢复文件。以下是核心功能的详细说明:


1. 切换分支
git checkout <branch-name>
  • 切换到已存在的本地分支
  • 示例:git checkout develop
git checkout -b <new-branch>
  • 创建并切换到新分支(相当于 git branch <new-branch> + git checkout <new-branch>
  • 示例:git checkout -b feature/login
git checkout --track origin/<remote-branch>
  • 创建本地分支并跟踪远程分支
  • 示例:git checkout --track origin/main

2. 恢复文件
git checkout -- <file-path>
  • 丢弃工作区的修改(未 git add 的改动)
  • 危险操作!不可撤销
  • 示例:git checkout -- src/index.js
git checkout <commit-id> -- <file-path>
  • 从指定提交恢复文件到暂存区和工作区
  • 示例:git checkout a1b2c3d -- README.md

3. 分离头指针模式
git checkout <commit-id>
  • 进入分离头指针状态(不关联分支)
  • 查看历史提交的内容(只读模式)
  • 示例:git checkout HEAD~2

4. 切换标签
git checkout <tag-name>
  • 切换到标签指向的提交(同样进入分离头指针状态)
  • 示例:git checkout v1.0.0

5. 特殊语法
git checkout -p
  • 交互式选择要恢复的代码块(类似 git add -p 的反向操作)
git checkout @{-1}
  • 快速切换回上一个分支
  • 示例:从 feature/login 返回 maingit checkout @{-1}

⚠️ 注意事项

  1. 未提交的修改:切换分支时如果有未提交的修改,Git 会阻止切换(除非使用 -f 强制)
  2. 分离头指针警告:在此状态下提交的更改不会属于任何分支,需要手动创建分支保存
  3. 新版本替代命令(Git 2.23+):
    • git switch:专门处理分支切换
    • git restore:专门处理文件恢复

典型工作流示例

# 创建并切换到新分支 
git checkout -b fix/bug-123 # 修改文件后放弃更改 
git checkout -- src/utils.js# 切换回主分支 
git checkout main # 从历史提交恢复配置文件
git checkout 89a4cfe -- config.yml

最佳实践:优先使用 git switch 和 git restore(Git 2.23+),语义更清晰且不易误操作。

相关文章:

  • 内接圆和外接矩形
  • 1.2、SDH的复用结构
  • Amazon Linux 2023 配置定时任务完全指南:cronie安装与使用
  • SpringBoot的Web应用开发——Web缓存利器Redis的应用!
  • 半导体标准协议 E94 ControlJob学习
  • 目前流行Agent框架对比表
  • 手搓一个记录复制记录的软件,方便快速找到之前复制内容
  • 【教程】Windows安全中心扫描设置排除文件
  • 「从实验室到工程现场:机器学习赋能智能水泥基复合材料研发全流程解析」
  • HarmonyOS5 运动健康app(三):健康睡眠(附代码)
  • springboot项目中整合高德地图
  • Java中extends与implements深度解析:继承与接口实现的本质区别
  • SpringBoot 日志管理
  • 什么是探索式测试,应该怎么做?
  • 视觉语言模型的“视而不见“
  • 初认Flask框架
  • 基于深度学习的智能语音合成系统:技术与实践
  • pmset - 控制 macOS 系统电源、睡眠、唤醒与节能
  • 隧道代理IP的使用与技术优势分析
  • 学习笔记:Redis入门
  • 公明网站建设公司/qq引流推广软件哪个好
  • 沧州市有建网站的吗/曼联目前积分榜
  • 太仓住房城乡建设网站/百度数据研究中心官网
  • 国内大的做网站的公司/网络seo培训
  • 顺德网站建设怎么样/石家庄seo外包的公司
  • 网站建设明薇通网络/做一个微信小程序需要多少钱