HEAD 文件通常是一个符号引用(symbolic reference),指向目前所在的分支。所谓符号引用,表示它是一个指向其他引用的指针。 当你在检出一个标签、提交或远程分支,让你的仓库变成 “分离 HEAD”状态时(DETACHED HEAD), 分离的HEAD就是让其指向了某个具体的提交记录而不是分支名,HEAD 文件可能会包含一个git对象的SHA-1值。
reset移动HEAD 指向的分支,即修改引用(如master)的游标 checkout改变HEAD 的自身,即HEAD 的内容ref: refs/heads/master ,.git/HEAD 当前所处分支 当检出一个分支时,它会修改HEAD指向新的分支引用,将暂存区填充为该分支上的最后一次提交的快照, 然后将暂存区的内容复制到工作区中 “HEAD” 一列中的 “REF” 表示该命令移动了 HEAD 指向的分支引用,而 “HEAD” 则表示只移动了 HEAD 自身。
| HEAD | Index | Workdir | WD Safe? |
---|
Commit Level | | | | | reset --soft [commit] | REF | NO | NO | YES | reset [commit] | REF | YES | NO | YES | reset --hard [commit] | REF | YES | YES | NO | checkout <commit> | HEAD | YES | YES | YES | File Level | | | | | reset [commit] <paths> | NO | YES | NO | YES | checkout [commit] <paths> | NO | YES | YES | NO |
|