git checkout 切换与恢复
git checkout 用于切换分支、创建分支和恢复文件,功能丰富。
切换分支
Bash
# 切换到已存在的分支
git checkout <branch>
# 切换到 main 分支
git checkout main
# 切换到上一个分支
git checkout -
创建并切换分支
Bash
# 创建新分支并切换
git checkout -b <new-branch>
# 基于指定提交创建分支
git checkout -b <new-branch> <commit>
# 基于远程分支创建
git checkout -b <new-branch> origin/<branch>
恢复文件
Bash
# 恢复工作区文件(丢弃未暂存的修改)
git checkout -- <file>
git checkout HEAD -- <file>
# 从指定提交恢复文件
git checkout <commit> -- <file>
# 恢复所有文件
git checkout -- .
分离 HEAD 状态
Bash
# 切换到指定提交(游离状态)
git checkout <commit>
# 切换到标签
git checkout <tag>
# 游离状态下修改需创建分支保存
git checkout -b <new-branch>
新命令替代(推荐)
Git 2.23+ 推荐使用新命令:
| 旧命令 | 新命令 | 用途 |
|---|---|---|
| git checkout | git switch | 切换分支 |
| git checkout -b | git switch -c | 创建并切换 |
| git checkout -- | git restore | 恢复文件 |
常用场景
Bash
# 切换分支
git checkout feature/login
# 创建并切换
git checkout -b feature/new
# 丢弃工作区修改
git checkout -- config.yaml
# 从另一分支恢复文件
git checkout main -- README.md
checkout 命令功能多易混淆,建议分支操作用 switch,恢复文件用 restore。
要点总结
git checkout <branch>切换分支git checkout -b <branch>创建并切换分支git checkout -- <file>恢复文件到上次提交状态git checkout -切换到上一个分支- Git 2.23+ 建议用 switch/restore 替代
📝 发现内容有误?点击此处直接编辑