Git IndexDiff返回的已修改和已更改的文件状态之间有什么区别?
我只发现: //在回购协议中,在索引中,内容差异=>已更改 //在索引中,在workdir中,内容不同=>modifiedGit IndexDiff返回的已修改和已更改的文件状态之间有什么区别?,git,jgit,Git,Jgit,我只发现: //在回购协议中,在索引中,内容差异=>已更改 //在索引中,在workdir中,内容不同=>modified 但是我不明白其中的区别?既然你没有得到任何答案,我就给你一个开始 首先,我认为两者之间有区别: 工作目录:这是您正在使用的文件系统。修改文件时,文件系统上的文件将发生更改。通常,这是操作系统保持最新的工作 索引:Git使用什么来了解发生了什么。这是Git跟踪发生了什么的内部机制。尽管对我来说有点模糊,但它应该知道文件系统上的更改或您添加的更改(使用git add[-u])
但是我不明白其中的区别?既然你没有得到任何答案,我就给你一个开始 首先,我认为两者之间有区别:
- 工作目录:这是您正在使用的文件系统。修改文件时,文件系统上的文件将发生更改。通常,这是操作系统保持最新的工作
- 索引:Git使用什么来了解发生了什么。这是Git跟踪发生了什么的内部机制。尽管对我来说有点模糊,但它应该知道文件系统上的更改或您添加的更改(使用git add[-u]),或您提交的更改(或所有更改)
- 存储库/本地副本:可能有不同版本文件的不同位置。Git使用散列来保存关于它们的信息(但如果你问这个问题,你应该知道)
Vincent查看javadoc,查找IndexDiff类中的getter:
/**
* @return list of files changed from tree to index
*/
public Set<String> getChanged()
/**
*@返回从树更改为索引的文件列表
*/
公共集getChanged()
这些文件在树头点(大多数情况下是当前分支的尖端)和Git索引之间存在差异
/**
* @return list of files modified on disk relative to the index
*/
public Set<String> getModified()
/**
*@返回相对于索引在磁盘上修改的文件列表
*/
公共集getModified()
这些文件不同于磁盘上的文件(也称为工作树)和Git索引命令javadoc中没有太多详细说明。
/**
* @return list of files modified on disk relative to the index
*/
public Set<String> getModified()
我使用了git status来理解git status是如何工作的
简言之:
modified—如果修改现有文件而不将其添加到索引中,会得到什么
更改-如果您修改现有文件并对其调用“git add…”,您将得到什么
这不是实际答案。忘记添加实际定义,请重新编辑,谢谢@ppperry