我通常会使用git add -p
添加更改,并且很多时候会有大量的代码块,用空行分隔。
然而,git不会再split
这个大块头,我不得不求助于手动编辑。
如何增加帅哥的粒度,使每个代码块都在一个单独的大块中?
编辑:这是一个与Git: show more context when using git add -i or git add -e?不同的问题,因为我不打算增加每个大块的上下文,而是增加帅哥的数量。
答案 0 :(得分:8)
无法完成,
您可以在add -p
中执行以下选项:
y - stage this hunk
n - do not stage this hunk
q - quit, do not stage this hunk nor any of the remaining ones
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
使用s
后,它会选择可被视为独立更改的代码块。如果你想要拆分更多,你将不得不使用e
编辑大块,然后将其添加回舞台区域。
要拆分帅哥,请使用s
标志
如果您需要将其拆分为更小的块,则需要使用e
选项手动编辑它。
答案 1 :(得分:3)
作为@codeWizard said in his answer,git不支持您想要的内容,因此无法在git add
中完成。
现在,您可以自己编写一个执行以下操作的脚本:
git checkout -- <changedfile>
将修改后的文件置于未修改状态答案 2 :(得分:2)
git gui
可让您选择要播放的特定行。
在您的git存储库中打开git gui
,然后右键单击所需的行&gt; “承诺的阶段线”。
现在,它不会让你编辑文件(我希望它可以在你喜欢的编辑器中打开一个临时文件)。要解决此问题,您只需使用提醒标记提交消息:
AMENDME: Add x
do not forget to rename thing
完成编码后,您可以使用git rebase -i <original branch>
,使用edit
命令标记“AMENDME”提交并修改该提交。