如何仅在预提交git钩子中的已更改行上删除尾随空格?

时间:2012-03-21 20:08:10

标签: git

我已经看到了一些建议的解决方案,但是如果它们被更改了,几乎所有解决方案都会删除整个文件中的空白,这不是一个选项。我也尝试过:

git diff -w --no-color | git apply --cached

但它似乎也没有用。我使用的是git版本1.6.3.1,无法更新。

3 个答案:

答案 0 :(得分:9)

找到答案:

git diff --cached --no-color > stage.diff && git apply --index -R stage.diff && git apply --index --whitespace=fix stage.diff && rm -f stage.diff

答案 1 :(得分:1)

我没有这样的脚本方便,但我想一个很好的起点是git附带的示例预提交钩子(在它转换为diff --check之前)。 至少它只会警告增加的线条。

gitweb view of pre-commit script

答案 2 :(得分:0)

这个问题有点陈旧,但我已div#sub-wrapper{position : absolute; margin : auto; top : 149px; width : 606px; height : 128px;} dt.guide-sub{width : 150px; height : 41px; margin-left : 303px; border : 1px solid black; background : rgba(20,20,20,0.4);} 别名git ws

您可以通过运行

设置类似的别名
git rebase --whitespace=fix

这将取消您尚未推送的任何提交,并在仅修改了您已更改的行上的空白后重新应用它们。