git 进阶学习:git checkout

git checkout

作用

  • 带提交引用:检出到对应的分支
  • 带路径:重置文件

git checkout 和git reset 的区别

  • git checkout :是修改HEAD指向新的分支引用,然后将该引用的内容填充索引(staged)区。
  • git reset:是移动HEAD所在分支的指向,然后将该次提交内容填充至索引区或工作区。
  • 不带路径的不同点:
    • checkout 移动HEAD的指针的指向,不会重置。
    • reset:移动HEAD本身,会改变分支的head的值。
  • 带路径的不同点:
    • checkout 相当于git reset --hard file, 会覆盖工作区。

覆盖图

下面的速查表列出了命令对树的影响。 “HEAD” 一列中的 “REF” 表示该命令移动了 HEAD 指向的分支引 用,而 “HEAD” 则表示只移动了 HEAD 自身。 特别注意 WD Safe? 一列——如果它标记为 NO,那么运行该命 令之前请考虑一下。
在这里插入图片描述