git恼人的trailing whitespace

用git进行版本控制,很爽!完全的分布式管理,让你可攻可守。

但不知各位用他来管理过Java代码?在提交的时候,碰到过“trailing whitespace”没有?这也算是代码规范的一个校验吧,即代码中不允许以空格结尾。

在实践中,我在两种情况下会碰到这种情况:
[list=1]
[*]crlf类:这主要是不同操作系统平台的回车编码不同导致
[*]代码中确实是以空格结尾,比如eclipse默认生成的java doc,就会以“* “结尾
[/list]
对于以上两类问题,都有效的解决方案就是:注释掉部分代码

if (/\s$/) {
bad_line("trailing whitespace", $_);
}

将以上三行代码注释掉:perl的注释是“#”

或者禁止执行pre-commit脚本

chmod a-x .git/hooks/pre-commit


不过对于第一类的情况,还可以通过设置git的参数来完成:

git-config core.autocrlf true
git-config core.safecrlf true


对于第二类,本人确实没有更好的办法来,希望高人在此指点一下,鄙人不胜感激。


[b]--Update:[/b]
Eclipse的其实是支持Remove Trailing Whitespace的,步骤如下:
[list=1]
[*]Window > Preferences > General > Keys > Modify
[*]查找“Remove Trailing Whitespace ”
[*]在Key Sequence中自定义要映射的键
[*]点击OK
[/list]

你可能感兴趣的:(linux/unix)