## 命名

git-hash-object - 计算对象ID并可选择从文件创建一个blob

## 概要

    git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin [--literally]] [--] <file>…

    git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]

## 描述

使用指定文件的内容（可以位于工作树之外）计算具有指定类型的对象的对象ID值，并且可以选择将结果对象写入对象数据库。将其对象ID报告给其标准输出。这用于`git cvsimport`在不修改工作树中的文件的情况下更新索引。当<type>没有被指定时，它默认为“blob”。

## 选项

-t <type>

指定类型（默认值：“blob”）。

-w

实际上将对象写入对象数据库。

--stdin

从标准输入而不是从文件中读取对象。

--stdin-paths

从标准输入读取文件名，每行一个，而不是从命令行读取。

--path

哈希对象，因为它位于给定的路径。文件的位置并不直接影响散列值，但路径用于确定在将对象放置到对象数据库之前应该将什么Git过滤器应用到该对象，并且作为应用过滤器的结果，实际的blob放置进入对象数据库可能与给定文件不同。此选项主要用于散列位于工作目录之外的临时文件或从stdin读取的文件。

--no-filters

按原样散列内容，忽略属性机制选择的任何输入过滤器，包括行结束转换。如果文件是从标准输入中读取的，那么这总是隐含的，除非`--path`给出选项。

--literally

允许`--stdin`将任何垃圾散列到松散对象中，否则可能不会通过标准对象分析或git-fsck检查。有助于压力测试Git本身或复制在野外遇到的腐败或假物体的特征。