現在の状態で git リポジトリの状態を表す sha 値はありますか?
git にこの sha 値がある場合、Object Database が更新され、参照が変更されるたびに更新される sha 値。
つまり、sha 値はリポジトリ全体の現在のバージョンを表します。
現在の参照のshaを計算するための私のコードは次のとおりです。Git レベルの API またはインターフェイスはありますか?
private string CalcBranchesSha(bool includeTags = false)
{
var sb = new StringBuilder();
sb.Append(":HEAD");
if (_repository.Head.Tip != null)
sb.Append(_repository.Head.Tip.Sha);
sb.Append(';');
foreach (var branch in _repository.Branches.OrderBy(s => s.Name))
{
sb.Append(':');
sb.Append(branch.Name);
if (branch.Tip != null)
sb.Append(branch.Tip.Sha);
}
sb.Append(';');
if (includeTags)
{
foreach (var tag in _repository.Tags.OrderBy(s => s.Name))
{
sb.Append(':');
sb.Append(tag.Name);
if (tag.Target != null)
sb.Append(tag.Target.Sha);
}
}
return sb.ToString().CalcSha();
}