我有一个repo,其中提交了许多文件。
我检查了特定文件的旧版本(没有创建分支)。
在所有git教程中都有图片的视觉解释,例如
A B C D
*--*--*--* <-- master <-- HEAD
描述特定文件的更改方式。
现在查看B,给出Detached Head
A B C D
*--*--*--* <-- master
^
\-- HEAD
(致谢,ascii艺术取自Brian Campbell的帖子Checking out an old commit and maintaining the head on the master branch?)
我看到这是特定文件的准确情况。但是,我相信repo中的其他文件仍然是最新版本,因为只检出了一个文件的旧版本。
问题:单个HEAD如何对文件夹中的所有文件有效,包括一些比HEAD引用的提交更新的文件。每个文件应该有一个HEAD指针吗?
在输入这个问题时,我现在猜测HEAD概念可能适用于本地(或远程)仓库,与工作目录无关。因此,工作目录中的大多数文件比HEAD更新的事实是&#34;只是它的工作方式&#34;。
答案 0 :(得分:1)
执行git checkout B -- path
时,
你没有进入一个独立的头状态,
并且您的工作树未更改为B
状态。
只有工作树中指定的path
设置为B
的状态。
如果另一方面你做git checkout B
,
你进入了独立的头状态,
并且整个工作树的内容设置为B
的状态。