Git唯一校验和

Git唯一校验和,git,hash,checksum,Git,Hash,Checksum,有人知道Git是否可以为本地计算机上的当前代码提供哈希值吗 基本上,GIT确认的整个文件系统的SHA1散列(即不包含未跟踪的文件),可能也不包含文件权限 我一直在找,但没能找到 我犯了一个典型的错误,在生产服务器上进行修改,然后进行提交,现在我想自杀 关于对于任何提交的完整树内容,都有一个快速且脏的校验和(根据定义,它只包括跟踪文件,但也包括文件的执行位)。这是连接到提交的树对象的SHA-1: $ git rev-parse HEAD^{tree} 61c3891747a3c82338ac995

有人知道Git是否可以为本地计算机上的当前代码提供哈希值吗

基本上,GIT确认的整个文件系统的SHA1散列(即不包含未跟踪的文件),可能也不包含文件权限

我一直在找,但没能找到

我犯了一个典型的错误,在生产服务器上进行修改,然后进行提交,现在我想自杀


关于

对于任何提交的完整树内容,都有一个快速且脏的校验和(根据定义,它只包括跟踪文件,但也包括文件的执行位)。这是连接到提交的树对象的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