我目前正在使用以下内容使用JGit克隆存储库:
Git.cloneRepository()
.setURI(uri)
.setDirectory(createTempDir())
.setBranchesToClone(singleton("refs/heads/" + branch))
.setBranch("refs/heads/" + branch)
.call();
但是我想允许branch
也是提交ID。我怎么能实现这个呢?
答案 0 :(得分:1)
在克隆Git存储库时,您只能指定要克隆的分支(或更常见的引用)。这不是JGit特有的,但也适用于CLI Git。
可以查询可用引用及其提交ID的远程存储库,但无法克隆任意提交ID。
使用JGit,LsRemoteCommand
可用于获取所有可用的引用,而无需实际下载相应的历史记录。或者,您可以使用CloneCommand
指定预先知道的引用,以便克隆给定的引用及其历史记录。
如果性能和带宽不是问题,您当然可以使用其所有引用(cloneCommand.setCloneAllBranches( true )
)克隆存储库,一旦在本地可用,请检查所需的提交。