带标签的Git结帐用空格提交

时间:2014-05-23 19:41:16

标签: git vim spaces

我有一个vim插件,它绘制类似于Sublime Text的缩进行,但它需要将空格表示为制表符。从意识形态来看,使事情变得复杂,我认为空间更适合存储库。

所以,现在,我正在使用vim在写入时将空格转换为制表符,这在计算上非常昂贵并且开始减慢编辑速度。

git是否可以在checkout / pull / merge上将空格转换为制表符,并从制表符转换为预提交空格?

由于

1 个答案:

答案 0 :(得分:4)

您可以使用.gitattributes执行此操作,请参阅smudge/clean concept in the git book。您可以创建在提交和签出时转换文件的过滤器。

.gitattributes中,配置应受过滤器影响的文件

* filter=spacetabs

在命令行上,告诉应该运行哪些脚本来过滤文件:

$ git config --global filter.spacetabs.clean tabs-to-spaces-script
$ git config --global filter.spacetabs.smudge spaces-to-tabs-script

另一种可能性是git hooks。添加在提交和签出时运行的转换脚本。但是.gitattributes可能更适合这种情况。