当前位置: 首页 > 知识库问答 >
问题:

JGit rebase保留本地文件并获取冲突文件列表

夏侯航
2023-03-14

我正在尝试从起源/mybranch 重新定位 mybranch。我正在使用这个代码:

git.pull().setRebase(true).setRemoteBranchName(branch).call();

执行此操作后,冲突的文件将更新为注释,例如

但是,即使我已经提交了本地更改,没有冲突的本地更改也会被存储库内容覆盖。

如果我试图在命令提示符下运行git命令“git-rebase”,而不是调用这个函数,本地文件不会更新,所以这很好。

后来我尝试了以下链接方法,

https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/RebaseToOriginMaster.java

InteractiveHandler handler = new InteractiveHandler() {
    @Override
    public void prepareSteps(List<RebaseTodoLine> steps) {
        for(RebaseTodoLine step : steps) {
            try {
                step.setAction(Action.EDIT);
            } catch (IllegalTodoFileModification e) {
                throw new IllegalStateException(e);
            }
        }
    }

    @Override
    public String modifyCommitMessage(String oldMessage) {
        return oldMessage;
    }
};
git.rebase().setUpstream("origin/"+branch).runInteractively(handler).call();

在此之后,我能够在变基时保留本地更改,但是冲突的文件现在被远程存储库值覆盖。

而且RebaseResult的“冲突列表”和“失败路径映射”也是空的,因此我无法找到更新的文件。

我在这里做错了什么,还是JGit有问题。我也没有得到任何适当的文档。

共有1个答案

柯宜年
2023-03-14

如果您发现git.pull(). setRebase(true)产生的结果与本机Git不同,您应该提交错误报告。

请注意,您应该提供一个(失败的)测试用例,该测试用例断言预期的结果以及使用本机git需要采取的必要步骤。

 类似资料:
  • 问题内容: 我正在尝试使用Python 2.7.1(在Windows上,fyi)从zip文件中提取文件,而我的每一次尝试都显示了具有Modified Date =提取时间的提取文件(不正确)。 我也尝试使用.extractall方法,结果相同。 谁能告诉我我在做什么错? 我想认为这是可能的,而不必重新校正每个[Windows文件的文件创建日期?](http://codingdict.com/que

  • 我想将至少2个PDF文件合并为一个,同时保留原始PDF中的所有表单元素。表单元素包括文本字段、单选按钮、复选框、下拉菜单等。请查看此示例PDF文件的表单: 你能做到吗? 编辑:至于实现,我更希望在linux平台上使用开源工具(如'ghostscript'或任何其他您认为适合解决此任务的工具)的命令行解决方案。 当然,欢迎每个人提供解决这个问题的任何工作解决方案,包括一个编码解决方案,它涉及编写一个

  • 我正在尝试在xml文件中写入一些我迄今为止创建的很好的概要文件, 输入字符串为ProfilesList(0)=“45 65 67”ProfilesList(1)=“ProfileName”; 在xml文件中,配置文件是这样写的: ?XML Version=“1.0”encoding=“UTF-8”?profilesgroup xmlns:xsi=“http://www.w3.org/2001/xm

  • 问题内容: 我想以编程方式访问将包含在我的项目文件夹中的特定文件。有没有办法做到这一点?如果是这样,我将文件放在项目文件夹中的什么位置,获取文件路径的一些简单代码是什么? 问题答案: 将文件放在项目的根文件夹中。然后获取文件URL,路径和其他详细信息,如下所示: 编辑: 替代方法(如果文件在您的类路径中,例如,将文件放在“ src”文件夹中,并确保编译后将其移入“ bin”或“ classes”文

  • 问题内容: 为了下载文件,我正在创建一个urlopen对象(urllib2类)并分块读取它。 我想多次连接到服务器,并在六个不同的会话中下载文件。这样做,下载速度应该会更快。许多下载管理器都具有此功能。 我考虑过在每次会话中指定要下载的文件部分,并以某种方式在同一时间处理所有会话。我不确定如何实现这一目标。 问题答案: 听起来您想使用可用的HTTP Range 风格之一。 编辑 更新的链接以指向w

  • 问题内容: 我有一个文本文件: 我想要这样的每一行的第二个和第四个词: 我正在使用此代码: 它可以工作,但是非常复杂,并且需要很长时间来处理长文本文件。 有没有更简单的方法可以做到这一点? 问题答案: iirc: 或者,如评论中所述: