首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JGit中使用Repository::resolve(String)

如何在JGit中使用Repository::resolve(String)
EN

Stack Overflow用户
提问于 2016-06-01 13:58:19
回答 1查看 2.1K关注 0票数 1

我正在使用JGit的类库用java编写程序。

该类具有方法解析(String)。

基本上,这个methoad解析一个git修改字符串并返回一个对象id。支持这些运算符的具体组合如下:

头部,MERGE_HEAD,FETCH_HEAD 沙-1:完整或缩写的SHA-1 参考文献/.:完整的参考名称 简称:参考文献/标题、参考文献/标签或参考文献/远程名称空间下的短引用名称。 标签-NN-gABBREV:输出的描述,分析的缩写为一个缩写的SHA-1。 id^:提交id的第一个父级,这与id^1相同 id^0:确保id为提交 id^n:提交id的第n个父级 id~n:第一父母的第n个历史祖先。id~3等于id^1^1^1或id^。 id :路径:在由id命名的树下查找路径 id^{ commit }:确保id是commit id^{ tree }:确保id是树 id^{ tag }:确保id是标记 id^{ blob }:确保id是blob

我想用这个方法

代码语言:javascript
复制
Repository repo;
ObjectId commit = repo.resolve("cnfuwfxmiazsdixfnsdiufsdhfiusfhsfisfh^{tree}");
System.out.println(commit );

预期产出:

代码语言:javascript
复制
cnfuwfxmiazsdixfnsdiufsdhfiusfhsfisfh

输出:

代码语言:javascript
复制
sjakfshdofcsmdfocsdfjdofdjgdhgfdgfhgf
//Output is another commit in project.

我想要插入的commit,但它显示了另一个commit。我认为这是因为它是提交id的第一个父级。

有什么方法可以获得与方法resolve()相同的提交id吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-01 14:53:08

传递给resolve()的表达式请求树id of cnf... (BTW,Git对象ids仅由十六进制字符组成)。这很可能是您得到的,您指定的提交的树id。

若要将字符串转换为JGit ObjectId,请使用

代码语言:javascript
复制
ObjectId objectId = ObjectId.fromString( "..." );

另见:如何从带有RevCommit的SHA1 ID字符串中获取JGit或JGit?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37570869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档