简化" git add"之后" git diff"

时间:2018-02-08 20:34:59

标签: git

在将任何文件添加到git之前,我总是经常使用其他选项致电git diff <filename>(例如,&#34; -w&#34;,&#34; --word-diff&# 34;等)。

diff看起来不错后,我会通过&#34; git add <filename>&#34;暂存提交文件。我目前这样做的方法是修改上一个命令行git diff bash调用,这需要删除diff和任何感觉效率低下且冗余方法的选项。

如何通过命令行同时执行diffadd

1 个答案:

答案 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 !#$