【发布时间】:2016-06-01 13:58:19
【问题描述】:
我正在使用 JGit 的 Class Repository 用 Java 编写程序。
这个类有方法resolve(String revstr)。
基本上这个方法解析一个 git 修订字符串并返回一个对象 id。支持这些运算符的特定组合:
HEAD、MERGE_HEAD、FETCH_HEAD
SHA-1:完整或缩写的 SHA-1
refs/...:完整的参考名称
short-name:在 refs/heads、refs/tags 或 refs/remotes 命名空间下的短引用名称
tag-NN-gABBREV:describe 的输出,通过将 ABBREV 视为缩写 SHA-1 进行解析。
id^:commit id 的第一个父级,与 id^1 相同
id^0:确保 id 是一个提交
id^n:提交 id 的第 n 个父级
id~n: id 的第 n 个历史祖先,由第一个父代。 id~3 等价于 id^1^1^1 或 id^^^.
id:path: 以 id 命名的树下的查找路径
id^{commit}:确保 id 是一个提交
id^{tree}:确保 id 是一棵树
id^{tag}:确保 id 是一个标签
id^{blob}:确保 id 是一个 blob
我想用这个方法
Repository repo;
ObjectId commit = repo.resolve("cnfuwfxmiazsdixfnsdiufsdhfiusfhsfisfh^{tree}");
System.out.println(commit );
预期输出:
cnfuwfxmiazsdixfnsdiufsdhfiusfhsfisfh
输出:
sjakfshdofcsmdfocsdfjdofdjgdhgfdgfhgf
//Output is another commit in project.
我想要我插入的提交,但它显示了另一个提交。 我认为是因为它是提交 id 的第一个父级。
有什么方法可以得到我在方法resolve()中放入的相同提交ID?
【问题讨论】: