有没有人知道Git是否可以为本地计算机上的当前代码提供哈希值。
基本上,GIT承认整个文件系统的SHA1哈希值(a.k.a留下未跟踪的文件),可能还要保留文件权限吗?
一直在寻找它,但却无法找到它。
我犯了经典的错误,就是在生产服务器上进行修改,然后进行提交,现在我想要自杀。
问候
答案 0 :(得分:2)
对于任何提交的完整树内容,可以使用快速且脏的校验和(根据定义,它仅包括跟踪文件,但也包括文件的执行位)。这是附加到提交的树对象的SHA-1:
$ git rev-parse HEAD^{tree}
61c3891747a3c82338ac995524e5d5958ec473b4
$ git rev-parse HEAD~3^{tree}
36812666a6ea99efc7455c7437a5e560f3803d46
要获取当前索引的树ID, 1 将索引写入存储库: 2
$ git write-tree
61c3891747a3c82338ac995524e5d5958ec473b4
如果这与某些现有提交的树ID匹配,那么您的工作树(当然不考虑未跟踪文件)与该提交中的树匹配。
1 因此,如果您的索引与工作树不匹配,则需要git add
和/或git rm --cached
任何文件。
2 如果您只想与HEAD
树进行比较,这基本上只是git status
的限制版本,其副作用是将树对象写入可能只需要在以后进行垃圾回收的存储库。所以git status
通常是要做的事情。