Git - 重置揭秘

主要观点:通过“三棵树”(HEAD、Index、Working Directory)的概念来理解 Git 的resetcheckout命令,介绍了它们在 Git 工作流程中的作用及不同选项的效果。
关键信息:

  • Git 管理和操作三棵树:HEAD 是当前分支的指针,指向最后一次提交;Index 是提议的下一次提交,相当于 Git 的“暂存区”;Working Directory 是可编辑的工作区,像个“沙盒”。
  • reset命令按特定顺序覆盖三棵树:移动 HEAD 指针(--soft)、更新 Index 使其与 HEAD 一致(--mixed,默认)、使工作区与 Index 一致(--hard,危险),还可指定路径对特定文件操作。
  • checkout命令:不带路径时类似reset --hard但更安全,会更新三棵树使与指定分支一致,且移动 HEAD 本身;带路径时更新 Index 和工作区,不移动 HEAD,也可按块选择性操作。
  • 可利用reset进行诸如合并提交等操作,如squash
    重要细节:
  • cat-filels-tree等命令用于查看 Git 内部结构。
  • Git 典型工作流程是通过操作三棵树记录项目状态。
  • resetcheckout的不同选项和操作对工作区的影响不同,--hard选项可能会破坏数据。
  • 总结了不同命令对三棵树的影响及是否安全的情况,方便记忆和使用。
阅读 7
0 条评论