我有两个分支,一个是主,另一个是1。现在level1是我需要通过git bash将master重置为level1的最新版本我可以通过以下命令来实现。
$ git checkout master
$ git tag old-master-branch
$ git reset --hard level1
$ git merge -s ours origin/master
$ git push origin master
这个对我来说很好。我的问题是如何使用JGit实现它。我试过了。但我无法弄清楚如何设置源和目标分支。
考虑我克隆了一个主分支的场景
Git git = Git.cloneRepository().setURI(remote).setCredentialsProvider(new UsernamePasswordCredentialsProvider("obuli", "xxxxxx")).setDirectory(gitPath) .setNoCheckout(true).call();
现在我需要将其重置为level1。
git.reset().setMode(ResetType.HARD).call();
但在这里我没有指定level1。我不知道如何指定它。还请说明如何在JGit中提供git merge -s ours origin/master
默认情况下,ResetCommand
重置为HEAD。要重置为另一个分支,您需要使用setRef()
指定此分支。
例如:
git.reset().setMode(ResetType.HARD).setRef("refs/heads/level1").call();
上面的命令将让当前分支指向level1
的最新提交并将其状态签出到工作目录中。