git diff:忽略重命名变量

时间:2011-05-27 16:49:30

标签: git ignore git-diff

在进行一些重构时,我将变量从oldName重命名为newName。有没有办法告诉git diff命令忽略oldName现在newName的差异?我想这样做只关注其他非平凡的变化。如果可以,我还可以指定多个变量重命名以忽略,例如,忽略从oldName1newName1以及从oldName2newName2的变化...?

3 个答案:

答案 0 :(得分:2)

他是非常正确的,但当然你可以grep diff的输出。不一样,但取决于变化的幅度,也许可以使用。

git diff | egrep -v 'oldName|newName' | egrep '^[+-]'

通常,您应该尝试将每个概念的提交设置为一次。您还可以使用git add -p拆分预提交。

答案 1 :(得分:1)

你想使用diff的-I选项吗?以下是如何执行此操作的方法:

    env GIT_EXTERNAL_DIFF='perl -e "system(qw{diff -I the_pattern_to_ignore -u}, @ARGV[0,1])"' git diff

这里需要perl来丢弃git为外部diff程序提供的额外参数。

答案 2 :(得分:0)

行。在Git的IRC频道中,selckin告诉我,这是不可能的。