首页 > 解决方案 > git:移动和更改 HEAD 之间的区别

问题描述

reset 要做的第一件事就是移动 HEAD 指向的东西。这与更改 HEAD 本身不同(这是 checkout 所做的);reset 移动 HEAD 指向的分支。

https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified

移动 HEAD 和改变 HEAD 有什么区别?

标签: git

解决方案


引用描述了HEAD指向分支的情况。假设master点在CommitA,并且dev点在CommitB

前,

HEAD -> master -> CommitA

git reset dev

HEAD -> master -> CommitB

git reset CommitB

HEAD -> master -> CommitB

git checkout dev

HEAD -> dev -> CommitB

git checkout CommitB

HEAD -> CommitB

git reset将提交HEAD递归地从更改CommitACommitBgit checkout更改HEAD直接指向的内容,从mastertodev和 from masterto CommitB

HEAD一开始就可以分离,

HEAD -> CommitA

在这种情况下,后git reset dev

HEAD -> CommitB

git reset CommitB

HEAD -> CommitB

git checkout dev

HEAD -> dev -> CommitB

git checkout CommitB

HEAD -> CommitB

推荐阅读