如何从 ObjectDatabase 检索文件的 SHA1

How to retrieve SHA1 of a file from the ObjectDatabase

我检查了源代码,但找不到通过文件路径从 ObjectDatabase 检索文件 SHA1 的方法。

手动计算 SHA1 很容易,但需要读取文件,这可能会导致性能问题。

如果您的文件之前已提交:

Commit commit = repo.Lookup<Commit>(commitSha);

// Or if it's just been committed
// Commit commit = repo.head.Tip;

string shaFromKnownCommit = commit["path/to/file.txt"].Target.Id.Sha;

如果您的文件只被暂存(提升到暂存区):

string shaFromStagedFile = repo.Index["path/to/file.txt"].Id.Sha;