|
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 |
|