Git Rebase 交互式预览器程序

Git Rebase Interactive previewer program

比如说,我运行

git rebase -i HEAD~6

然后在我的交互式文件中

p hash1  comment1
r hash2  comment2
f hash3  comment3
f hash4  comment4
f hash5  comment5
p hash6  comment6

然后我保存退出。 Git 然后应用提交,如果出现错误则停止,或者成功完成变基。

我想知道是否有一些软件可以在您无需退出文本文件的情况下预览您的 rebase 规范。

就像,在旁边,或者在另一个 shell,它会监视你正在处理的临时变基文件,并在每次你更改提交的 configuration/ordering 时尝试变基。

没有,没有这样的程序。

一般写起来会比较吃力:Git只有退出编辑器才能知道你已经完成了对顺序控制文件的编辑。 Git 可以告诉您已经退出编辑器,因为 Git 本身 启动了 编辑器,所以它看到了退出。

假设你为这个问题提供了一个神奇的解决方案,1这样的程序会相对容易写2,一旦你决定正是它应该做什么。也就是说,它将如何尝试变基,它应该留下什么状态来标记成功或失败?据推测,无论成功还是失败,它都应该保持存储库和工作树不变,这样当你退出编辑器并调用 rebase "for real" 时,它仍然可以发生。

无论如何,如果您决定尝试编写此内容,只需从 $(git --exec-path)/git-rebase--interactive 中现有的 rebase -i 脚本开始。你的任务是:删除 "setup" 和 "finish" 代码路径(因为你已经设置好了——你只是在测试,不想 运行 post-rebase 钩子,也不移动分支指针);添加代码以将 HEAD 重置为起点;将 reword 实现为 pick 而不是 reword (大概你不想让你的测试脚本尝试交互——但请注意我在这里做假设);而且,我认为最难的部分是弄清楚如何决定 "success" 与 "failure".


1也许神奇的解决方案就是打开第二个 window,在其中 运行 您的 "test my rebase" 脚本。

2对于"easy"的一些值。