当前位置: 首页 > 知识库问答 >
问题:

我是否需要指定分支来列出 JGit 中两个修订版之间的提交?

苗运珧
2023-03-14

我想使用JGit获得存储库中两次修订(散列)之间的提交列表。

我不知道提交(开始提交哈希,结束提交哈希)是在一个分支中还是在不同的分支中。

我知道如何从JGit中的提交开始遍历树。

我的问题:我是必须在存储库的所有分支中查找提交散列,还是可以像这样只使用< code > Respository::resolve():

Repository repository = git.getRepository();
walk.parseCommit(repository.resolve(commitHash));

并确保我将同时找到提交开始和结束?

共有1个答案

穆建华
2023-03-14

分支和其他引用(例如标签)只是提交id的指针。因此,您可以安全地使用提交id来列出两个提交之间的修订。

为了完成您的示例:

ObjectId startCommit = walk.parseCommit( repository.resolve( startCommitId ) );
RevCommit endCommit walk.parseCommit( repository.resolve( startCommitId ) );
// configure and use walk
 类似资料:
  • 问题内容: 我想使用Java JGit库来检索先前提交的文件修订。该文件每天都会更新,我需要从git存储库访问以前的版本。 我知道如何通过提供提交的修订我需要哈希,如所描述检出一个特定的修订版本在这里用这个命令: 当前,我克隆存储库,搜索该文件的最新提交,然后签出修订版。我现在的过程很麻烦,因为我每次都需要重新检出存储库。我宁愿只是从特定修订版(例如,master分支)中导出单个文件。 修订日志

  • 如何使用jgit遍历来自特定分支的特定提交的所有内容? 这段代码从提交中检索一个特殊文件,但我希望遍历提交的所有内容。

  • 有人知道如何使用JGit API获取文件列表吗?我试图在本地存储库中找到类似的函数,比如使用<code>git show 我有一些类似的代码 此代码以本地存储库为目标,使用 遍历上次提交的修订树。我发现这个例子使用来获取文件的引用,但是dunno如何获取所有Java文件的列表。欢迎任何建议。

  • 问题内容: 我正在尝试使用jGit克隆存储库并签出特定的提交。 假设提交哈希为:1e9ae842ca94f326215358917c620ac407323c81。 我的第一步是: 然后,我发现了另一个提出这种方法的问题: 但是我不确定如何将两者链接在一起? 有什么想法吗? 问题答案: 您将必须首先克隆存储库,因此第一步是正确的: 要仅通过ID检出提交,可以这样调用: 但是请注意,这将导致HEAD分

  • 我正在尝试使用JGit来获取特定于分支的提交日志,因为它被创建。我在论坛上发现了几篇听起来像是在描述这一点的帖子,但它们似乎都返回了分支和之前的所有内容。 我基本上想用JGit模拟这个git命令 这正是我想要的。

  • 在Xamarin网站上,它说: 最低操作系统版本为Windows 7。Xamarin。Forms Windows支持需要Windows 8.1和Xamarin。Forms UWP支持需要Windows 10 这是否意味着如果我想在Android和iOS应用程序的Xamarin.FormsAPI中使用UI控件和XAML,我需要有Windows 10?还是只有当我想将我的应用程序部署到Windows手