首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能用REBASING_MERGE脱离JGit状态

不能用REBASING_MERGE脱离JGit状态
EN

Stack Overflow用户
提问于 2018-03-06 09:21:25
回答 2查看 787关注 0票数 1

我正在使用JGit (v4.10.0.201712302008-r)来自动化与git存储库交互的任务。

由于某些原因,有些任务使回购处于REBASING_MERGE状态。现在,当我下次处理一个任务时,我需要尝试“修复”存储库。我已经删除了潜在的冲突/修改/添加,但是回购仍然处于REBASING_MERGE状态。

我尝试过提到there (中止合并),但没有结果--存储库状态仍然相同,无法执行以下操作:

代码语言:javascript
复制
org.eclipse.jgit.api.errors.WrongRepositoryStateException: Cannot pull into a repository with state: REBASING_MERGE

知道如何用JGit解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-07 16:04:22

实际上,我在这里找到了答案:https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/RebaseToOriginMaster.java#L78 (我修改了代码):

代码语言:javascript
复制
 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());
 }

我仍然需要理解为什么重基失败,因为最初没有冲突。

票数 0
EN

Stack Overflow用户

发布于 2018-03-06 18:04:16

在继续之前,有些命令检查从Repository::getRepositoryState返回的存储库状态。

如果REBASING_MRGE目录中有一个文件或目录rebase-merge,则返回.git状态。如果您确信返回到正常状态是安全的,则只需删除fire/目录即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49127289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档