【发布时间】:2018-01-17 03:55:26
【问题描述】:
使用普通的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 已经在我正在寻找的命令中提供了自动功能,我是否可以使用一个巧妙的解决方案来解决这个问题?
【问题讨论】:
-
我有完全相同的要求。你最后做了什么?
标签: java git jgit git-checkout