如何为“ pull --rebase”冲突重新启动合并

问题描述 投票:0回答:1

我正在开发基于Eclipse Foundation的基于JGit的Git插件,并且我已经有一位同事实现了“ Restart merge”,用于在尝试执行默认请求(合并)时发生冲突。 。

现在我正在执行“ Pull(rebase)”操作。当发生冲突并且用户在冲突文件中进行了一些更改时,我希望让他们能够重新启动合并。我注意到有些Git客户端没有此选项(例如Eclipse的EGit,GitKraken Free),而有些则没有(SourceTree)。

我当前的代码如下:

public void restartMerge() {
    try {
      RepositoryState repositoryState = getRepository().getRepositoryState();
      String revision = repositoryState == RepositoryState.REBASING_MERGE ? "HEAD" : "MERGE_HEAD";
      AnyObjectId commitToMerge = getRepository().resolve(revision);
      git.clean().call();
      git.reset().setMode(ResetType.HARD).call();

      if (repositoryState == RepositoryState.REBASING_MERGE) {
        // TODO: regenerate the conflict
      } else {
        git.merge().include(commitToMerge).setStrategy(MergeStrategy.RECURSIVE).call();
      }

      fireFileStateChanged(new ChangeEvent(GitCommand.MERGE_RESTART, Collections.<String> emptyList()));
    } catch (IOException | NoRepositorySelected | GitAPIException e) {
        if (logger.isDebugEnabled()) {
            logger.debug(e, e);
        }
    }
}

[我认为我必须再次进行基准调整或类似的操作才能重新产生冲突,就像我的同事做了一个新的merge()。但是,此时我处于一个分离的HEAD上...我试图移至master分支,并再次以origin/master作为上游重新设基,但是它没有用...

Git命令对于重新启动基准冲突会是什么?也许我可以使用JGit执行它们...

java git jgit
1个回答
0
投票

您可以尝试运行git rebase --abort,并根据情况使用git pull --rebase重新启动基准。

© www.soinside.com 2019 - 2024. All rights reserved.