Obu*_*dar 2 java git bash jgit
我有两个分支,一个是主,另一个是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
Run Code Online (Sandbox Code Playgroud)
这个对我来说很好.我的问题是如何使用JGit实现它.我试过了.但我无法弄清楚如何设置源和目标分支.
考虑我克隆了一个主分支的场景
Git git = Git.cloneRepository().setURI(remote).setCredentialsProvider(new UsernamePasswordCredentialsProvider("obuli", "xxxxxx")).setDirectory(gitPath) .setNoCheckout(true).call();
Run Code Online (Sandbox Code Playgroud)
现在我需要将其重置为level1.
git.reset().setMode(ResetType.HARD).call();
Run Code Online (Sandbox Code Playgroud)
但在这里我没有指定level1.我不知道如何指定它.还请说明如何git merge -s ours origin/master在JGit中提供
默认情况下,ResetCommand重置为HEAD.要重置为另一个分支,您需要指定此分支setRef().
例如:
git.reset().setMode(ResetType.HARD).setRef("refs/heads/level1").call();
Run Code Online (Sandbox Code Playgroud)
上面的命令将让当前分支指向level1的最新提交并将其状态签出到工作目录中.
| 归档时间: |
|
| 查看次数: |
2111 次 |
| 最近记录: |