(TLDR) 有没有办法在git rebase -i
没有提交 ID 的情况下停止编辑?(/TLDR)
更长的版本:
背景
使用git rebase -i
,我得到一个文本编辑器,我可以在其中定义一个命令列表,从pick COMMIT_ID
每一行开始。
其中一个选项是将“pick COMMIT_ID”替换为“edit COMMIT_ID”,这意味着它将在提交后停止,以便我修改提交或进行一些手动操作。然后我可以继续git rebase --continue
。
从选项列表中:
# e, edit = use commit, but stop for amending
问题
我想知道是否可以选择停止编辑,而不选择任何提交。
动机/用例
例如,如果我想压缩一系列提交,然后停止一些手动操作,我将不得不将 edit + squash 放在同一个提交 id 的前面——这是不允许的。
相反,我会做这样的事情:
pick COMMIT_0 Change some colors
pick COMMIT_1 Make it faster
squash COMMIT_2 Fix a typo in previous commit
squash COMMIT_3 Fix another typo in previous commit
edit
pick COMMIT_4 Refactor some things
pick COMMIT_5 Introduce new options
这样的选项还允许在序列中的第一次提交之前停止。
(我要说它允许在整个历史的初始提交之前进行编辑,但这不是真的 - 初始提交永远不是变基序列的一部分)
如果我这样做,git 会这样说:
警告:SHA-1 丢失或不是以下行中的提交:
有趣的是,效果或多或少是我想要的,它停下来,我可以做事。但我确信这不是预期的方式。