Git 内部文件处理:

    1. 代码库里所有文件都是数据,以数据为中心,所有操作、存储和处理逻辑围绕数据展开。
    2. 跟踪整个项目整体状态,每次建立全局快照,而不是跟踪每个文件的变更。
    3. 针对git目录下的每个文件计算一个hash值, 文件内容作为value, hash值为文件key。
    4. 如果单个文件内容发生变化, 下次重新计算hash值。如果文件没有发生变更,当前快照指向历史hash。
    5. 整个代码库的变化历史和文件组成用树形结构表示。
    6. Git每次commit记录整个代码库的一次快照, 当前快照包含发生变化的文件和历史快照(子树)。

    iHasher工具校验文件

    使用场景:
    查看重复率:论文查重
    查看一致性:校验文件是否改动

    参考链接: https://mp.weixin.qq.com/s/SkcBXExK7_Gy5Uv3ib4M2A