在SO方面存在一个关于使用magit拆分大块的问题,给出的两个解决方案是对区域进行分级(标记区域,命中阶段),或者使用 +
&-
。那不是我所追求的。
在magit的状态缓冲区中,我想在某个点或至少在该点周围的直线上将一个块分为两个块。
扭转这个(不好意思的差异格式)
@@ blah blah blah
- foo
+ bar
+ baz
+
进入
@@ blah blah
- foo
+ bar
@ blah blah
+ baz
当该点在栏上时。
动机:
baz
是一个调试语句,所以我想从foo
&的提交中删除它,bar
而又不会摆脱它。bar
并且baz
仅部分相关,这意味着它们的更改不应在同一提交中。bar
既大又baz
小,这使得拆分大块头而不是进行选择变得容易得多bar
与最后一点类似,假设20行提交包含不应上演的中间一行。比起使用区域,将顶部和底部的两个大块块分割并上演而忽略中间的大块块会更容易。
当diff演示将修改过的内容的前后分开,而中间没有帮助时,有时会出现上述情况。例如
@@ line
- old_foo
+ random stuff
+ new foo
diff-split-hunk
此操作的命令。IOW您的请求是一种diff-split-hunk
从magit-status缓冲区使用(或等效方法)的方法。