You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NGit获取Git仓库最后一次提交的SHA1值?

获取NGit中当前分支最后一次提交的SHA1值

要生成branch:sha1格式的版本标签,你可以通过NGit的引用(Ref)对象获取当前分支指向的最新提交ID,以下是修改后的完整代码:

var repository = NGit.Api.Git.Open(Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly().Location)?.Parent?.Parent?.Parent?.Parent?.FullName);
var repo = repository.GetRepository();
var branch = repo.GetBranch();

// 获取当前分支的引用并提取SHA1值
var branchRef = repo.GetRef($"refs/heads/{branch}");
var sha1 = branchRef.GetObjectId().Name;

Console.WriteLine($"{branch}:{sha1}");

关键逻辑说明:

  • repo.GetRef($"refs/heads/{branch}"):通过分支名构造完整的引用路径,获取当前分支对应的引用对象
  • GetObjectId():获取该引用指向的最新提交的对象ID
  • Name属性:将ObjectId转换为标准的40位SHA1字符串

如果当前分支是HEAD指向的分支,也可以直接通过HEAD引用获取目标提交ID:

var headRef = repo.GetRef("HEAD").GetTarget();
var sha1 = headRef.GetObjectId().Name;

内容的提问来源于stack exchange,提问作者user5405648

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:02:04