我已将一个文件添加到“索引”:
git add myfile.java
如何找到该文件的 SHA1?
这是一个老问题,但有一件事需要澄清:
这个问题和下面的答案讨论Git 哈希值一个文件的不完全一样 “该文件的 SHA1”正如问题中所问。
简而言之:
如果您想获得索引中文件的 Git 哈希值 - see
CB Bailey 的回答 https://stackoverflow.com/questions/460297/git-finding-the-sha1-of-an-individual-file-in-the-index#answer-460422:
git ls-files -s $file
如果您想获得文件系统上任何文件的 Git 哈希值 - see
cnu的回答 https://stackoverflow.com/questions/460297/git-finding-the-sha1-of-an-individual-file-in-the-index#answer-460315:
git hash-object $file
如果您想获得文件系统上任何文件的 Git 哈希值,并且您没有安装 Git:
(echo -ne "blob `wc -c < $file`\0"; cat $file) | sha1sum
(上面显示了 Git 哈希值的实际计算方式 - 它不是文件的 sha1 和,而是字符串的 sha1 和“斑点大小\0内容” where "blob"实际上是一个字符串“blob”(后面跟着一个空格),SIZE是以字节为单位的文件大小(ASCII 十进制),"\0"是空字符并且CONTENT是实际文件的内容)。
如果你想得到“该文件的 SHA1”正如问题中所问的:
sha1sum < $file
如果你没有sha1sum
您可以使用shasum -a1
or openssl dgst -sha1
(输出格式略有不同)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)