如何在 JGit 中从一个 git 分支硬重置到另一个分支?
How to hard reset from one git branch to other in JGit?
我有两个分支,一个是master,另一个是level1。现在 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
的最新提交并将其状态检出到工作目录中。
我有两个分支,一个是master,另一个是level1。现在 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
的最新提交并将其状态检出到工作目录中。