我正在尝试使用JGit库访问特定的提交文件。
使用Git命令,这看起来像:git checkout [COMMIT_ID]
,然后我的文件夹将签出到特定的提交并从中获取任何文件。
现在使用JGit,我调用Git.cloneRepository()
函数来获取我的存储库(遗憾的是,这里不能从特定的提交中克隆)。然后我试图使用这个结帐:gitRepo.checkout().setName(gitCommitId).call()
但这让我得到以下错误:Remote origin did not advertise Ref for branch COMMIT_ID. This Ref may not exist in the remote or may be hidden by permission settings.
这很奇怪,因为CLI的git命令是可以工作的。
也许通过这个库不是可行的,但是我在网上还没有找到其他的东西。
setName(String name)
更多用于分支名称,而不是提交ID。
setStartPoint(RevCommit startCommit)
不使用commit ID
如图所示,git.checkout().setAllPaths(true).setStartPoint(gitCommitId).call();
在克隆之后会更好。