1. git checkout -- <file> 的示意

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

2. "checkout" 的补充

2.1 git checkout <branch_name>

2.2 git checkout .

  • 将暂存区中的内容尽数回滚给工作区
  • 此命令有危险!
  • 先对 "note_01.txt" 做些改动

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

  • 然后使用 git checkout .

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

分析

  • 仅仅使用 git checkout 是没有效果的
  • git checkout 有一个反馈,再次说明“没有消息就是最好的消息”
  • git checkout . 生效

3. 画了一张“脑图”,复习一下 "reset"

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

4. git reset --hard HEAD~ 的示意

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

5. 关于单个文件的回滚

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

分析

  • 工作区与本地仓库一致
  • 暂存区的 "note_01.txt" 中的内容与本地仓库的上一个版本的 "note_01.txt" 一致

  • 恢复

[Git] 011 checkout 与 reset 命令的补充-LMLPHP

6. 关于 "--hard"

  • “有无相生,难易相成,长短相形,高下相倾,音声相和,前后相随,恒也。”
  • 既然有 "hard",那么应该也有 "soft"
  • 其实还有一个 "mixed"
--hard移动 HEAD,使指向的“快照”用于暂存区
--soft移动 HEAD 的指向,但不回滚
--mixed默认值,将“快照”回滚到暂存区
05-11 21:46