git checkout .作用是什么

366 阅读1分钟

git checkout . 在项目内任何位置执行 效果都是等价的。

git checkout . 的作用是:

把当前工作目录下所有已追踪(tracked)文件的本地更改全部还原为最近一次 commit 的状态。

也就是说:

  • 撤销你还没 add/commit 的所有代码和文件内容修改(不包括新建的未被 git 跟踪的文件)。
  • 只是还原内容,不会切换分支,也不会删除分支。
  • 不会影响还未 add 到 git 的新文件,也不会移除被 ignore 的文件。

举例说明

假设你有如下情况:

  • 你在 main.js 里写了一些新代码,还没 git add 或 commit。
  • 你修改了 README.md,但没提交。
  • 你新建了一个 temp.txt 文件,还没用 git add 跟踪。

这时输入:

git checkout .

效果是:

  • main.jsREADME.md 的修改会被全部还原为上一次 commit 的状态。
  • temp.txt(未被 git 跟踪的新文件)不会被删除或修改

适用场景

  • 想要放弃所有未提交的本地修改,快速恢复到最新 commit 状态。
  • 常用于“代码改乱了,想全部回到上次保存点”的情形。

注意事项

  • 这个操作无法还原被移除的文件,只还原“内容”。
  • 若有重要更改请先备份,因为撤销后不可恢复
  • 如果你想连未跟踪文件一块清理,可以配合 git clean -fd 使用。

总结口诀

git checkout .还原所有已追踪文件的内容为最新 commit 状态


如需撤销指定文件,可用 git checkout 文件名
如需撤销所有内容和未追踪文件,可用:

git reset --hard
git clean -fd