使用普通的git checkout
命令,它的功能与我期望的完全相同。这是我希望用同一段代码实现的用例:
1)git checkout branchname
,其中branchname
在本地不存在但在远程存在。
2)git checkout branchname
,其中branchname
已经在本地存在。
3)git checkout commitid
为了上下文,该存储库以以下方式进行了克隆:
repo = Git.cloneRepository()
.setCloneSubmodules(true)
.setURI(repoUrl)
.setDirectory(createTempDir())
.setCloneAllBranches(true)
.call();
标准的JGit checkout命令不会自动在本地创建分支。以下代码适用于场景2和3:
repo.checkout()
.setName(branchOrCommitId)
.call();
随着修正案创建了一个新分支,它仅适用于场景1:
repo.checkout()
.setCreateBranch(true)
.setName(branchOrCommitId)
.call();
考虑到标准的Git CLI已经提供了我需要的命令自动功能,是否有一个简洁的解决方案可供使用?