GIT中是否有差异工具,它只能显示文本更改而不会更改格式

时间:2014-05-13 20:05:57

标签: git

我们在eclipse项目中引入了一个formatter.xml文件来自动格式化代码。我们遇到的问题是格式化之后我们在执行

时看到未更改文件中存在很多差异
$git diff <file> 

它显示添加了几行并删除了相同数量的行,但代码中没有引入任何更改。  我的问题是有一个命令可以显示实际发生的变化,并且不会显示更改,例如由于自动格式化,花括号移动了一行。

以下示例:

-public class PPCCustomerFacadeImpl<T extends PPCCustomerData> extends      
DefaultCustomerFacade implements PPCCustomerFacade<T> 
{
+public class PPCCustomerFacadeImpl<T extends PPCCustomerData> extends 
DefaultCustomerFacade implements
+        PPCCustomerFacade<T> {

1 个答案:

答案 0 :(得分:3)

如果唯一的差异是各行内的空白变化,那么git diff会提供可以帮助您的选项;你可以尝试--ignore-all-spaceHere's a link了解更多信息。如果要更容易键入,可以创建别名:

git config --global alias.diffis 'diff --ignore-all-space'

然后git diffis将使用选项运行差异。

但是,我认为不可能忽略将非空白文本移动到不同行的更改,如示例中所示。按行跟踪变化是git的基本原则。