在将任何文件添加到git之前,我总是经常使用其他选项致电git diff <filename>
(例如,&#34; -w
&#34;,&#34; --word-diff
&# 34;等)。
diff
看起来不错后,我会通过&#34; git add <filename>
&#34;暂存提交文件。我目前这样做的方法是修改上一个命令行git diff
bash调用,这需要删除diff
和任何感觉效率低下且冗余方法的选项。
如何通过命令行同时执行diff
和add
?
答案 0 :(得分:0)
要有选择地应用差异,请使用-p
又名--patch
选项。 git add -p
从工作树应用于索引,git checkout -p
从索引或命名提交应用于索引和工作树,git reset -p
从提交应用于索引。
每个大块的选项都是
你得到了什么?或者只是点击进入。Apply this hunk to index [y,n,q,a,d,/,j,J,g,e,?]? y - apply this hunk to index n - do not apply this hunk to index q - quit; do not apply this hunk or any of the remaining ones a - apply this hunk and all later hunks in the file d - do not apply this hunk or any of the later 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
为了通常不在命令行重复自己,$_
扩展到上一个命令的最后一个参数,例如, git diff --word-diff @ path/to/file
然后只有git add $_
。还有历史记录扩展,它从历史记录行中提取单词而不是命令,并且由shell稍微变化,!$
是&#34;前一行的最后一个单词&#34;,!#$
是& #34;我现在正在打字的行上的最后一个字&#34;所以就地排序是例如sort -nrk2,2 -o mylist !#$
。