Git Rebase交互式预览程序

时间:2016-05-12 19:45:37

标签: git version-control rebase git-rebase tmux

比方说,我跑

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。

我想知道的是,是否存在一些预览您的rebase规范的软件,而无需退出文本文件。

就像在侧面或在另一个shell中一样,它会监视您正在处理的临时变基文件,并在每次更改提交的配置/顺序时尝试重新绑定。

1 个答案:

答案 0 :(得分:1)

不,没有这样的程序。

一般来说写起来很困难:Git知道你完成序列控制文件编辑的唯一方法就是退出编辑器。 Git可以告诉你已退出编辑器,因为Git本身启动了编辑器,所以它看到了退出。

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

无论如何,如果你决定尝试写这个,只需从rebase -i中的现有$(git --exec-path)/git-rebase--interactive脚本开始。你的任务将是:去除"设置"并且"完成"代码路径(因为你已经设置好了 - 你只是测试,并且不想运行post-rebase挂钩,也不想移动分支指针);添加代码以将HEAD重置为起始点;将reword实现为pick而不是reword(可能您不希望让您的测试脚本尝试进行交互 - 但请注意我在这里做出假设);而且,我认为最困难的部分,弄清楚如何决定成功" vs"失败"。

1 可能,神奇的解决办法就是打开第二个窗口,在这个窗口中你可以运行你的"测试我的rebase"脚本。

2 对于某些值" easy"。