使用 JGit 重置为指定的提交

Reset to specified commit using JGit

我正在使用 JGit 以编程方式将远程更改提取到本地存储库。如果拉取失败并抛出异常,我想在拉取尝试之前将本地存储库重置为最新提交。

然而,ResetCommand 不将提交标识符作为参数,即使 Git 重置命令接受 "commit" 参数。这是 ResetCommand 的已知限制,还是我遗漏了什么?

是否有替代的 JGit 命令或命令序列可以达到相同的效果?

ResetCommandsetRef() 方法允许指定提交的 ID。 例如:

resetCommand.setRef("< SHA-1 >");

拉取失败的原因有多种。我假设 'pull fails and throws an exception' 你指的是无法与当前本地分支合并的拉动。

如果您的目的是防止合并失败影响当前存储库状态,您可能需要先获取上游更改,然后 遵循我在这里提出的建议: