我正在使用JGit以编程方式将远程更改拉到本地存储库。如果pull失败并抛出异常,我想在拉取尝试之前将本地存储库重置为最新的提交。
但是,即使Git reset命令接受“commit”参数,ResetCommand
也不会将提交标识符作为参数。这是ResetCommand
的已知限制,还是我错过了什么?
是否有可用于相同效果的替代JGit命令或命令序列?
setRef()
的ResetCommand
方法允许指定提交的id。例如:
resetCommand.setRef( "< SHA-1 >" );
拉动可能由于几个原因而失败。我假设'pull failed并抛出异常',你指的是一个无法与当前本地分支合并的pull。
如果您的目的是防止合并失败影响当前存储库状态,您可能需要首先获取上游更改,然后按照我在此处提出的建议:How to get conflicting lines with JGit