在Git存储库中,是否存在用于文件的唯一标识符?该标识符必须在一些提交(修改文件),或重命名和移动文件之后仍然相同。是否存在这样的东西呢?我尝试了“git ls-files --debug”,但我没有找到符合上述特征的唯一标识符。
在 git 仓库中,“blob” 文件的唯一标识符是它的 SHA-1,但这是文件内容(以及它是文件/ blob 的事实)的校验和。只有在文件内容保持不变时,它才会保持恒定。它不依赖于文件名,但依赖于其内容,因此修改文件将更改 SHA-1。您可以创建自己的唯一 ID,但您还必须进行自己的跟踪,将 ID 映射到当前的树相关名称(或 git 名称,即 SHA-1),并在文件重命名(或修改)时更改它。