我将一个文件添加到索引中:
git add somefile.txt
然后我通过以下方式获取了该文件的 SHA1:
git hash-object somefile.txt
我现在有一个 SHA1,我想使用 SHA1 检索索引中对象的文件名。
git show 5a5bf28dcd7944991944cc5076c7525439830122
该命令返回文件内容,但不返回文件名。
如何从 SHA1 获取完整文件名和路径?
git 中没有这种直接映射,因为文件名是包含该文件的树对象的一部分,而不是作为文件内容的 blob 对象的一部分。
从 SHA1 哈希中检索文件名并不是一个常见的操作,因此也许您可以扩展它的实际用例?
如果您正在查看当前文件(即 HEAD 提交),您可以尝试以下操作。
git ls-tree -r HEAD | grep <SHA1>
如果您想查找以前提交中的内容,您需要执行类似这样的操作。
git rev-list <commit-list> | \
xargs -n1 -iX sh -c "git ls-tree -r X | grep <SHA1> && echo X"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)