jGit CheckoutCommand导致一种奇怪的行为

时间:2013-12-05 15:21:06

标签: jgit

我试图通过以下方式使用CheckoutCommand

Git git = new Git(repository);
CheckoutCommand checkoutCommand = git.checkout();       
checkoutCommand.setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.SET_UPSTREAM);
checkoutCommand.setStartPoint("origin/" + branchName);
checkoutCommand.setCreateBranch(true);
checkoutCommand.setForce(true);

checkoutCommand.call();

我也尝试使用SetupUpstreamMode.TRACK,但它仍然失败。

这会导致一种奇怪的行为: 删除存储库内容,而是创建每个远程分支的克隆。

你能告诉我吗?

1 个答案:

答案 0 :(得分:1)

您没有设置要创建的分支的名称,这应该导致call()上的异常(您是否有可能吞下它?)。添加如下调用:

 checkoutCommand.setName(branchName);

请参阅documentation of CheckoutCommand(上面提到here)。

另请注意,这些调用可以链接,因此您也可以这样写:

git.checkout().setCreateBranch(true).setName(branchName) // ...