![](/img/trans.png)
[英]JGit: Can I find out whether or not a particular tag exists in a Git repository without checking it out?
[英]Checking out a Git repository by branch or commit ID using JGit
我目前正在使用JGit使用以下命令克隆存储库:
Git.cloneRepository()
.setURI(uri)
.setDirectory(createTempDir())
.setBranchesToClone(singleton("refs/heads/" + branch))
.setBranch("refs/heads/" + branch)
.call();
但是我想允许branch
也可以是一个提交ID。 我该如何实施?
克隆Git存储库时,您只能指定要克隆的分支(或更普遍的引用)。 这不仅适用于JGit,还适用于CLI Git。
可以查询远程存储库以获取可用引用及其提交ID,但是不能克隆任意提交ID。
使用JGit,可以使用LsRemoteCommand
来获取所有可用的引用,而无需实际下载各自的历史记录。 或者,您可以使用CloneCommand
指定一个预先已知的引用,以便克隆给定的引用及其历史记录。
如果性能和带宽不是问题,那么您当然可以克隆带有所有引用的存储库( cloneCommand.setCloneAllBranches( true )
),并在本地使用该存储库后,签出所需的提交。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.