Git唯一校验和
有人知道Git是否可以为本地计算机上的当前代码提供哈希值吗 基本上,GIT确认的整个文件系统的SHA1散列(即不包含未跟踪的文件),可能也不包含文件权限 我一直在找,但没能找到 我犯了一个典型的错误,在生产服务器上进行修改,然后进行提交,现在我想自杀Git唯一校验和,git,hash,checksum,Git,Hash,Checksum,有人知道Git是否可以为本地计算机上的当前代码提供哈希值吗 基本上,GIT确认的整个文件系统的SHA1散列(即不包含未跟踪的文件),可能也不包含文件权限 我一直在找,但没能找到 我犯了一个典型的错误,在生产服务器上进行修改,然后进行提交,现在我想自杀 关于对于任何提交的完整树内容,都有一个快速且脏的校验和(根据定义,它只包括跟踪文件,但也包括文件的执行位)。这是连接到提交的树对象的SHA-1: $ git rev-parse HEAD^{tree} 61c3891747a3c82338ac995
关于对于任何提交的完整树内容,都有一个快速且脏的校验和(根据定义,它只包括跟踪文件,但也包括文件的执行位)。这是连接到提交的树对象的SHA-1:
$ git rev-parse HEAD^{tree}
61c3891747a3c82338ac995524e5d5958ec473b4
$ git rev-parse HEAD~3^{tree}
36812666a6ea99efc7455c7437a5e560f3803d46
要获取当前索引的树ID,1将索引写入存储库:2
如果这与某个现有提交的树ID匹配,则您的工作树(当然不考虑未跟踪的文件)与该提交中的树匹配
1因此,如果索引与工作树不匹配,则需要根据需要
git添加
和/或git rm--cached
任何文件
2如果您只想与HEAD
树进行比较,这基本上只是git status
的一个有限版本,其副作用是将树对象写入存储库,以后可能需要对其进行垃圾收集。因此,git status
通常是一种替代方法
$ git write-tree
61c3891747a3c82338ac995524e5d5958ec473b4