我正在尝试使用jGit克隆存储库并签出特定的提交。
假设提交哈希为:1e9ae842ca94f326215358917c620ac407323c81。
我的第一步是:
// Cloning the repository
Git.cloneRepository()
.setURI(remotePath)
.setDirectory(localPath)
.call();
然后,我发现了另一个提出这种方法的问题:
git.checkout().
setCreateBranch(true).
setName("branchName").
setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK).
setStartPoint("origin/" + branchName).
call();
但是我不确定如何将两者链接在一起?
有什么想法吗?
您将必须首先克隆存储库,因此第一步是正确的:
Git.cloneRepository().setURI(remotePath).setDirectory(localPath).call();
要仅通过ID检出提交,可以这样调用checkout
:
git.checkout().setName("<id-to-commit>").call();
但是请注意,这将导致HEAD分离。为了避免这种情况,您可以checkout
先创建一个指向提交的新分支,然后再签出该分支。
git.checkout().setCreateBranch(true).setName("new-branch").setStartPoint("<id-to-commit>").call();
该API并不是很直观,但是可以做到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句