2011-05-27 189 views
1

在做一些重構時,我將一個變量從oldName重命名爲newName。有沒有辦法告訴git diff命令忽略差異oldName現在是newName?我想這樣做只專注於其他不重要的更改。如果可以,我還可以指定多個變量重命名以忽略,例如忽略從oldName1newName1和從oldName2newName2的變化...?git diff:忽略變量的重命名

回答

2

他是非常正確的,但當然你可以grep diff的輸出。不一樣的事情,但取決於變化的規模,也許可以使用。

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

一般來說,你應該嘗試讓你的提交是每個概念提交一次。您還可以使用git add -p分割您的預提交。

+0

哇,'git add -p'看起來很漂亮...... Git,新的Vim ... – ma11hew28 2011-05-27 22:42:05

0

好的。 Git的IRC頻道中的selckin告訴我,這是不可能的。

+1

可能沒有這樣做的單個git命令。但是,通過閱讀SO上[git]標籤中的問題,我學到了如果你知道一點bash腳本,那麼總是有*一種方法來做你想做的事。 – MatrixFrog 2011-05-27 17:19:01

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程序。