比方说,我跑
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中一样,它会监视您正在处理的临时变基文件,并在每次更改提交的配置/顺序时尝试重新绑定。
答案 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"。