Menu
CoddyTech

Git Checkout

最后更新

git checkout 是在仓库中来回切换的经典命令:切换分支、用 -b 创建分支、检出某个特定提交,或者恢复文件。它的功能太多,所以新版 Git 把它的工作拆分成了 git switch(分支)和 git restore(文件)。两种写法现在都能用。

在终端在线编辑器中试试这些命令:浏览器里就有一个真正的 shell,无需安装任何东西。

git checkout 把 HEAD 从一个分支移到另一个分支,并让工作区与之保持一致。

语法

命令作用
git checkout main切换到已有的分支
git checkout -b feature创建新分支并切换过去
git checkout <hash>检出某个特定提交(分离 HEAD)
git checkout -- file.txt丢弃对文件的修改(恢复文件)
git checkout main -- file.txt从另一个分支恢复一个文件

checkout vs switch vs restore

任务旧写法(checkout)新写法
切换分支git checkout maingit switch main
创建并切换git checkout -b xgit switch -c x
丢弃文件修改git checkout -- fgit restore f

Git checkout 常见问题

git checkout 是做什么的?
它让你在仓库中来回切换。最常见的用法是切换分支(git checkout main),但它也可以创建分支(-b)、检出某个特定提交,或者把文件恢复到之前的版本。正因为它承担了好几种不同的工作,新版 Git 引入了 git switch 和 git restore 来分担。
git checkout 和 git switch 有什么区别?
git switch 是一个更新、更专一的命令,只用来切换分支(加上 -c 时还能创建分支),更清晰,也更不容易用错。git checkout 除此之外还能恢复文件和检出提交。对于分支操作,git switch main 和 git checkout main 是等效的;用你团队习惯的那个就行。
如何检出某个特定提交?
运行 git checkout <hash>。这会让你进入“分离 HEAD”(detached HEAD)状态:你在查看那个提交,但不在任何分支上。如果想保留在这里做的工作,就创建一个分支:git switch -c newbranch。要回去的话,用 git switch main 重新检出一个分支。
如何用 checkout 丢弃对文件的修改?
运行 git checkout -- file.txt,丢掉这个文件中未提交的修改,恢复到最后一次提交的版本。在新版 Git 中,更清晰的等效写法是 git restore file.txt。两者都会丢弃你的修改,所以请确认你不再需要它们。
可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里真正的 shell 中运行 git checkout,无需安装任何东西。Coddy 免费的互动式 Git 课程也会一步步讲解如何创建和切换分支。
Coddy 编程语言插图

在 Coddy 学习 Git

开始