使用普通的git checkout
這個命令的工作原理就是我所期望的。下面是使用案例我想允許與同一段代碼:如何在不知道JGit本地存在的情況下檢出遠程分支?
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簽出命令不會自動在本地創建分支。下面的代碼段工程方案2和3:
repo.checkout()
.setName(branchOrCommitId)
.call();
隨着修訂創建一個新的分支,只與方案1的工作:
repo.checkout()
.setCreateBranch(true)
.setName(branchOrCommitId)
.call();
有沒有很好地解決了這個問題,我可以使用,考慮到標準Git CLI已經在我正在查找的命令中提供了自動功能?
我有完全一樣的需求。你最終做了什麼? –