0

現在の状態で 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();
}
4

1 に答える 1