3

Git 存储库中的文件是否存在任何唯一标识符?在某些提交(修改文件)或重命名和移动文件之后,此唯一标识符必须相同。

这样的事情存在吗?

我试过git ls-files --debug了,但没有找到具有上述特征的唯一标识符。

4

2 回答 2

4

git repo 中文件(“blob”)的唯一唯一标识符是它的 SHA-1,但这是文件内容的校验和(加上它是文件/blob 的事实)。只有当文件的内容保持不变时,它才会保持不变。它不依赖于文件,但它依赖于它的内容,所以修改文件会改变 SHA-1。

您可以组成自己的唯一 ID,但您还必须进行自己的跟踪,将 ID 映射到当前的树相对名称(或 git-name,即 SHA-1)并在文件重命名时更改它(或修改,分别)。

于 2013-10-01T18:02:25.497 回答
2

不,没有。如果你修改它,从 Git 的角度来看,它是一个不同的文件。

于 2013-10-01T18:09:04.373 回答