我发现只有:
//在repo中,在index中,内容diff =>变 //在索引中,在workdir中,内容不同=>改性
但我无法理解其中的区别?
答案 0 :(得分:1)
查看类IndexDiff中的getter的javadoc:
/**
* @return list of files changed from tree to index
*/
public Set<String> getChanged()
这些文件在树HEAD点(大多数情况下当前分支的顶端)和Git索引之间有所不同
/**
* @return list of files modified on disk relative to the index
*/
public Set<String> getModified()
这些是磁盘上的文件(也称为工作树)和Git索引
之间不同的文件答案 1 :(得分:0)
因为你没有得到任何答案,我给你一个开始。
首先,我认为:
之间存在差异工作目录:这是您正在处理的文件系统。修改文件时,文件系统上的文件已更改。通常,这是操作系统的工作,以使其保持最新。
索引:Git用来知道发生了什么。那是Git内部机制来跟踪发生的事情。即使它对我来说有点模糊,它应该知道文件系统上的更改或你添加的更改(使用git add [-u]),或者你提交的更改(或所有更改)
< / LI>存储库/本地副本:您可能拥有不同版本文件的不同位置。 Git使用哈希来保存关于它们的信息(但是如果你问这个问题,你应该知道它)
我知道Git的问题是处理仓库的大小,当仓库规模相当大时它会变慢。更准确地说,他们的团队正致力于减少更新Git对文件系统知识的lstat调用量(因此这意味着Git通常知道您何时修改工作目录中的文件)
我不知道你在看什么,但你可能会搜索git-update-index(我认为它是在你做git add时调用的),'Git lstat'或google上的这种东西。
而且,抱歉,但你的问题真的不明确:缩写太多,行太少。 'content diff'是否意味着您对内容运行diff命令或内容不同?你的符号不清楚,为什么使用//你可能列出项目,并且=>&gt;代表结果或其他任何东西。人们在回答之前花时间搜索文档,请花时间写清楚的问题。
我希望这会对你有所帮助
文森特
答案 2 :(得分:0)
在命令javadoc中没有太多详细说明。 我使用git status unit-tests来了解 git status 的确如何运作。
简而言之:
已修改 - 如果修改现有文件而不将其添加到索引
,则会获得什么已更改 - 如果您修改现有文件并拨打&#39; git add ...&#39;在它上面