社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

计算git存储库之外的文件或目录的git哈希

donquixote • 3 年前 • 1431 次点击  

问题

是否有可能在任何git存储库之外独立地计算文件或目录的git哈希?

动机

我想使用这种方法来识别生成的工件(例如,从sass生成的css)中的差异。

使用git这样做的好处是,可以将散列与git历史中现有的文件散列进行比较,看看它们是否熟悉。

出身背景

在里面 How to compute the git hash-object of a directory? 我们将学习如何计算目录的git哈希。此方法仅在目录位于git存储库中时有效。

git ls-files -s somedirectory | git hash-object --stdin

根据我对git的理解,文件或目录的git哈希取决于 只有 在文件或目录内容上,可能是文件perms,但不在存储库中的任何内容上。

已知方法

是的,我们可以暂时建立回购协议,但为什么要采取额外的步骤呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132554
 
1431 次点击  
文章 [ 1 ]  |  最新文章 3 年前
torek
Reply   •   1 楼
torek    3 年前

Files are easy; directories are hard. 阅读目录的Python代码;但文件只是文件内容的校验和(现在是SHA-1,将来是SHA-256),前面有一个blob头,其中包括blob的大小(十进制ASCII码),再加上一个字节将头与数据分开。也就是说,对于一个12字节的文件,我们有 blob 12\0hello world\n 作为输入 sha1sum 或者无论您的本地命令或计算SHA-1校验和的方法是什么。

(你也可以简单地使用 git hash-object ,用于普通文件。目录仍然很难找到。)