Git 内部文件处理:
- 代码库里所有文件都是数据,以数据为中心,所有操作、存储和处理逻辑围绕数据展开。
- 跟踪整个项目整体状态,每次建立全局快照,而不是跟踪每个文件的变更。
- 针对git目录下的每个文件计算一个hash值, 文件内容作为value, hash值为文件key。
- 如果单个文件内容发生变化, 下次重新计算hash值。如果文件没有发生变更,当前快照指向历史hash。
- 整个代码库的变化历史和文件组成用树形结构表示。
- Git每次commit记录整个代码库的一次快照, 当前快照包含发生变化的文件和历史快照(子树)。
iHasher工具校验文件
使用场景:
查看重复率:论文查重
查看一致性:校验文件是否改动
