用magit分裂一个大块头


80

我有2个编辑非常接近(因此属于同一块代码),我想分别提交。是否可以从magit内分割大块?

Answers:


126

您可以使用Ctrl+Space(C-SPC)正确设置标记,并且magit将仅提交所选部分。


我总是在区域的底部设置标记,然后将标记移到顶部以进行舞台演出或不舞台演出,因为我遇到了其他问题(我不记得具体内容)过去。YMMV。
菲尔斯

2
回复:我之前的评论,最近我读到了这个原因,即当您取消/登台区域时,点必须位于您要操作的区域。当然,您也可以用它C-x C-x来交换点并进行标记,如果您反过来做的话。
phils 2012年

使用瞬态标记模式时,其行为是否有所不同?因为我总是从上到下选择,并且从来没有问题。
Dominik Honnef'4

3
仅设置标记(C-SPC)对我来说还不够。我不得不再按C-SPC一次才能激活transient-mark-mode
Vebjorn Ljosa 2014年

1
需要明确的是:magit将仅提交所选内容。怎么选择都没关系,例如,我Shift + <arrows>用来选择大块的一部分,然后按一下s以暂存所选择的部分。
jfs 2015年

61

您还可以使用-+减少或增加差异(和0重置)中的块的范围,但是dominikh的答案是最重要的信息。


这对我不起作用,是在较新版本的magit中将其删除还是这是我的设置所特有的?
Mike HR

Mike HR:假设您处于magit-status缓冲区中,那么这在AFAIK上仍然可以正常工作。
phils 2015年

1
是的,我错了,您需要在开始行@@(大块信息行)上按+或-而不是像我一直尝试的那样在大块内按。
Mike HR

0

Magit重用,diff-mode但是不公开其许多diff-mode命令,magit-revision-mode因为这与VC包一样。

例如,您可以调用diff-split-hunk通常C-c C-s位于中的diff-mode

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.