gpt4 book ai didi

java - 从 Java 代码执行 git rebase 交互

转载 作者:太空宇宙 更新时间:2023-11-04 13:41:37 25 4
gpt4 key购买 nike

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

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

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

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

由于它正在等待编辑器停止,那么如何克服这个问题并强制启动 rebase 过程?

最佳答案

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

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

关于java - 从 Java 代码执行 git rebase 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31202699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com