git checkout
文章目录1.简介2.格式3.选项4.示例1. 切换分支2. 创建并切换到新分支3. 强制创建分支覆盖已存在分支4. 恢复文件5. 切换到历史提交分离头指针状态6. 创建独立空白分支7. 跟踪远程分支8.常见组合5.小结参考文献1.简介git checkout是 Git 中一个功能强大的命令主要用于切换分支和恢复工作区文件。它可以帮助你在不同分支之间快速切换也可以将文件恢复到之前的某个提交状态。不过需要注意的是由于git checkout承担了两种不同的职责Git 2.23 版本引入了更专用的git switch切换分支和git restore恢复文件命令。但git checkout依然广泛使用理解它仍然很有必要。2.格式# 切换分支的格式gitcheckout[-b|-B]new-branch[start-point]# 恢复文件的格式gitcheckout[提交]--文件路径起始点start-point是指你希望新分支基于哪个提交commit来创建。起始点可以是如下类型起始点类型示例说明本地分支名main,develop新分支基于该分支的最新提交远程分支名origin/main,upstream/develop新分支基于远程分支的最新提交常用于跟踪远程分支提交哈希abc1234,3f4a5b6新分支基于历史中的某个特定提交标签v1.2.3,release-2024新分支基于某个标签指向的提交HEAD 相对引用HEAD,HEAD~2,HEAD^HEAD表示当前分支的最新提交~2表示往前 2 个提交3.选项-b分支名创建并切换到新分支-B分支名强制创建并切换到新分支如果分支已存在则重置--track创建新分支并跟踪远程分支--orphan分支名创建一个没有父提交的全新分支适合创建全新独立项目 -f,--force强制切换丢弃未提交的更改需谨慎 --pathspec恢复指定文件.恢复当前目录所有文件4.示例1. 切换分支# 切换到已有分支gitcheckout maingitcheckout develop# 切换到上一个分支快速往返gitcheckout -2. 创建并切换到新分支# 基于当前分支创建新分支gitcheckout-bfeature/new-login# 基于指定分支创建新分支gitcheckout-bfeature/new-login develop# 基于远程分支创建本地跟踪分支gitcheckout-bfeature/new-login origin/develop3. 强制创建分支覆盖已存在分支# 如果 feature/old 分支已存在会强制重置到当前 HEADgitcheckout-Bfeature/old4. 恢复文件# 恢复工作区的某个文件到最近一次提交的状态gitcheckout -- main.go# 恢复当前目录所有文件慎用会丢失未提交的改动gitcheckout --.# 从指定的提交中恢复某个文件gitcheckout abc1234 -- main.go5. 切换到历史提交分离头指针状态# 切换到某个历史提交会进入 detached HEAD 状态gitcheckout abc1234# 基于历史提交创建新分支保留修改gitcheckout-bnew-branch abc12346. 创建独立空白分支# 创建一个全新空白分支没有提交历史gitcheckout--orphangh-pages# 清空暂存区gitrm-rf.# 添加新内容...7. 跟踪远程分支# 创建本地分支并自动跟踪远程分支gitcheckout--trackorigin/feature/remote-branch8.常见组合使用场景推荐命令说明切换分支git checkout main切换到 main 分支创建并切换新分支git checkout -b new基于当前分支创建恢复单个文件git checkout -- file.go放弃该文件的本地修改放弃所有本地修改git checkout -- .⚠️ 不可逆请确认后执行切换到上一个分支git checkout -快速在两个分支间切换检出历史提交git checkout abc123进入分离头指针状态建议配合-b创建分支5.小结git checkout 既能切换分支也能恢复文件。它的 -b 选项用于创建新分支-- 用于恢复文件。推荐新用户了解git switch和git restore作为更专注的替代。参考文献Git - git-checkout Documentation