我正在克隆一个远程存储库,想要检查几个分支以与它们进行互操作(不对工作目录应用更改)。
所以我克隆了存储库:
CloneCommand clone = Git.cloneRepository();
clone.setURI(project.getUrl());
clone.setDirectory(new File(RepositoryHandlerHelper
.getFilePath(project)));
clone.setCredentialsProvider(getCredentials());
clone.setCloneAllBranches(true);
clone.call();
这很有效。现在我在本地硬盘上创建远程分支(循环):
git.branchCreate().setName(currentBranchToBuild)
.setUpstreamMode(SetupUpstreamMode.TRACK)
.call();
哪个也有效。我不确定这是否有必要..之后我尝试检查每个分支:
git.checkout().setName(currentBranchToBuild).call();
我确定正确的分支名称已提交给setName()
。没有抛出异常,但该命令似乎对我的工作目录没有任何影响。
我在这里遗漏了什么吗?
答案 0 :(得分:1)
我想你需要添加setStartPoint("origin/branchtotrack")
,另见my answer to a similar question。
答案 1 :(得分:0)
找到一个可行的解决方案:我不需要为每个分支创建本地副本。如果我只是检查远程分支它的工作原理。我的问题有所不同。我正在生成每个分支的JavaDoc(checkout然后创建JavaDoc)。但似乎结账不会立即生效。如果我在git.checkout ...和我的生成JavaDoc的调用之间放置一个Thread.sleep(1000),它就可以正常工作。
感谢您的帮助。