我有一个vim插件,它绘制类似于Sublime Text的缩进行,但它需要将空格表示为制表符。从意识形态来看,使事情变得复杂,我认为空间更适合存储库。
所以,现在,我正在使用vim在写入时将空格转换为制表符,这在计算上非常昂贵并且开始减慢编辑速度。
git是否可以在checkout / pull / merge上将空格转换为制表符,并从制表符转换为预提交空格?
由于
答案 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
可能更适合这种情况。