有一個sha值代表當前狀態下git倉庫的狀態嗎?sha值表示git倉庫的狀態
每次更新對象數據庫並更新參考時,sha值將被更新,如果git具有此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();
}
你是指當前版本的代碼或存儲庫? – user1937198
@ user1937198是的 – Aimeast
哪一個?如果你的代碼只是取最近一次提交的哈希值。一個提交包含父項的散列。 – user1937198