git签出是否应该绕过索引而只更新工作树?

git签出是否应该绕过索引而只更新工作树?,git,Git,发件人: Git签出文件 签出文件类似于使用带有文件路径的git reset, 除了更新工作目录*而不是 舞台。与此命令的提交级别版本不同,此命令 不移动头部参照,这意味着您不会切换 分支机构 再往下一点: 如果暂存**并提交签出的文件,则会“还原”到该文件的旧版本 但是,当我git签出--时,我看到我的工作树(即升华更新中的文件)中添加了更改,git status显示对文件的修改是绿色的,并且在staged/in索引中。(通过给出空输出的git diff验证。) 是我的git配置错误,他们的文

发件人:

Git签出文件 签出文件类似于使用带有文件路径的
git reset
, 除了更新工作目录*而不是 舞台。与此命令的提交级别版本不同,此命令 不移动头部参照,这意味着您不会切换 分支机构

再往下一点:

如果暂存**并提交签出的文件,则会“还原”到该文件的旧版本

但是,当我
git签出--
时,我看到我的工作树(即升华更新中的文件)中添加了更改,
git status
显示对文件的修改是绿色的,并且在staged/in索引中。(通过给出空输出的git diff验证。)

是我的git配置错误,他们的文档不正确,还是我误解了他们? *他们的重点


**我强调的是,这里的大西洋文件是完全错误的

git checkout tree ish--path
首先将指定的
路径
复制到索引(也称为暂存区域),然后从索引复制到工作树。这将覆盖以前索引中的内容。Git文档就是这样告诉您,只要找到一个提交或提交的树对象就足够了。大多数人在这里使用提交散列ID、分支名称和相对名称,如
HEAD~3
,但任何内容都可以

(要签出提交,
签出
代码需要一个提交哈希,在这种情况下,只有提交ID可以。但是,对于这种特殊情况,它只需要找到与提交ID关联的源树快照。Git可以使用提交来查找树,就像它用于提交签出一样,但您可以为它提供树哈希ID。)直接自我。人类几乎没有理由这样做,但某些软件可能会这样做。另请参见。)

但是,请注意,
git checkout--path
将索引复制到工作树(没有首先从
tree ish
提取到索引)。这可能会导致错误的假设


有一种方法可以使用
git show
git cat file-p
直接从提交到工作树的文件中提取文件,而无需首先查看索引。在较旧版本的git中,此过程总是跳过任何行尾和其他过滤器和文本转换项,而这通常是
git checkout
为您做的;在较新的git,您可以强制这些转换以使用
git checkout
的方式进行。只有在使用污迹过滤器、
ident
过滤器或CRLF行结束转换选项时,此警告才起作用。

您最好在源位置搜索信息:官方。@axiac,以便Atlassian文档不正确,请参见ms.
-ish
提交ish
)在本文中是什么意思?我真的应该说
树ish
(将修复)。但是:文档使用“提交ish”的地方,您可以提供:原始散列ID;分支名称;标记名称;相对提交标识符,如
HEAD~3
;或中列出的任何其他奇特项。和
tree ish
commit ish
,使用它们的方式表示完全相同的内容,例如
原始散列ID;分支名称;标记名称;相对提交标识符r像HEAD~3;或者gitrevisions文档中列出的任何其他花哨的项目
?在这种情况下,是的。我在这上面添加了一个扩展和附加段落。这里的最后一段似乎有点偏离了主要答案。我这么说是因为它激发了我的好奇心,我打算仔细阅读它,它最终可能会y引出一个自己的问题。谢谢你的好文章。干杯。