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