我正在使用JGit (v4.10.0.201712302008-r)来自动化与git存储库交互的任务。
由于某些原因,有些任务使回购处于REBASING_MERGE状态。现在,当我下次处理一个任务时,我需要尝试“修复”存储库。我已经删除了潜在的冲突/修改/添加,但是回购仍然处于REBASING_MERGE状态。
我尝试过提到there (中止合并),但没有结果--存储库状态仍然相同,无法执行以下操作:
org.eclipse.jgit.api.errors.WrongRepositoryStateException: Cannot pull into a repository with state: REBASING_MERGE知道如何用JGit解决这个问题吗?
发布于 2018-03-07 16:04:22
实际上,我在这里找到了答案:https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/RebaseToOriginMaster.java#L78 (我修改了代码):
if(!result.getStatus().isSuccessful()) {
// if rebasing stopped or failed, you can get back to the original state by running it with setOperation(RebaseCommand.Operation.ABORT)
result = git.rebase().setUpstream("origin/master").setOperation(RebaseCommand.Operation.ABORT).call();
System.out.println("Aborted rebase with state: " + result.getStatus() + ": " + result.getConflicts());
}我仍然需要理解为什么重基失败,因为最初没有冲突。
发布于 2018-03-06 18:04:16
在继续之前,有些命令检查从Repository::getRepositoryState返回的存储库状态。
如果REBASING_MRGE目录中有一个文件或目录rebase-merge,则返回.git状态。如果您确信返回到正常状态是安全的,则只需删除fire/目录即可。
https://stackoverflow.com/questions/49127289
复制相似问题