【问题标题】:Performing git rebase interactive from Java code从 Java 代码执行 git rebase 交互
【发布时间】:2015-07-03 09:00:56
【问题描述】:

当从命令行使用git rebase --interactive时,您会在终端窗口中获​​得提交列表,然后修改它们并保存,此时rebase过程开始,您可以使用git commit --amendgit rebase --continue重写历史

我正在尝试使用 Runtime.getRuntime().exec() 从 Java 自动重写整个历史记录,在另一个线程中我打开并编辑 .git/rebase-merge/git-rebase-todo 的 todo 文件

问题是代码在执行变基命令时停止

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("git rebase --continue --root $TIP"); 

因为它正在等待编辑器停止,所以如何解决这个问题并强制 rebase 进程启动?

【问题讨论】:

    标签: java git rebase git-rebase


    【解决方案1】:

    当变基失败时,变基将停止并指示需要手动(交互式)项目才能继续前进。

    鉴于 git rebase-interactive 只是构建一系列提交,您可以构建一个提交列表,然后调用一系列 git cherry-pick sha,这实际上是交互式 rebase 正在做的事情。

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 2012-09-05
      • 2021-09-12
      • 1970-01-01
      相关资源
      最近更新 更多