jgit - 如何使用 JGit 记录两个发布标签之间的提交

标签 jgit

我有一种情况,例如运行 git 命令,如

$ git log 1.0.201802090918...1.0.201802071240" 

在我的存储库下获取发布标签 1.0.201802090918 和 1.0.201802071240 之间不同的提交列表。所以我想知道如何使用 JGit 进行编码以获得相同的效果。

最佳答案

LogCommand 允许指定它将包含的提交范围。范围需要以 ObjectId 形式给出。如果标签标记了起点和终点,则需要首先提取它们引用的提交ID。

下面的代码片段说明了必要的步骤:

ObjectId from = repo.resolve("refs/tags/start-tag");
ObjectId to = repo.resolve("refs/tags/end-tag");
git.log().addRange(from, to).call();

如果使用带注释的标签,则可能必须先将其取消剥离,如下所述:what is the difference between getPeeledObjectId() and getObjectId() of Ref Object?

关于jgit - 如何使用 JGit 记录两个发布标签之间的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48804216/

相关文章:

git - checkout 时忽略 .gitattributes

java - Java中通过Jgit忽略文件或文件夹

java - 如何确定谁最后使用 JGit 更改了文件

java - 拉取远程分支时在 JGit 中获取 InvalidConfigurationException

java - 如何知道哪些文件已被修改以修复从 git 提交开始的错误?

java - 使用 JGit 获取修订版本中的文件列表

java - 从 Java 中查找所有更改给定目录的提交

git - JGit: checkout 远程分支

java - git addfilepattern 无法读取我的目录路径

java - 使用 jGit 循环提交文件