gpt4 book ai didi

java - 使用 JGit 从 Git 存储库中 check out 特定修订

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:52:42 27 4
gpt4 key购买 nike

我正在尝试使用 jGit 克隆存储库并 check out 特定提交。

假设提交哈希是: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 提交,您可以像这样调用 checkout:

git.checkout().setName("<id-to-commit>").call();

但请注意,这将导致 detached HEAD .为避免这种情况,您可以告诉 checkout 首先创建一个指向提交的新分支,然后 check out 该分支。

git.checkout().setCreateBranch(true).setName("new-branch").setStartPoint("<id-to-commit>").call();

API 不是很直观,但它可以做它应该做的事情。

关于java - 使用 JGit 从 Git 存储库中 check out 特定修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com