可以告诉git在~/.gitconfig中使用空格吗? [英] Can git be told to use spaces in ~/.gitconfig?

查看:16
本文介绍了可以告诉git在~/.gitconfig中使用空格吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用git config --global <some option> <some value>时,Git会在我的~/.gitconfig中写入相关条目,并以一个制表符缩进。由于my ~/.gitconfig是受版本控制的,并且我希望它不会乱七八糟,因此我必须手动进入并用空格替换制表符。

~/.gitconfig添加条目时,是否可以告诉Git自动使用空格?

(请注意,这不是我用Git提交的代码中的缩进,而是Git自己的配置文件中的缩进。)

推荐答案

这就是对我起作用的方法(请注意,正如@rasjani在一条评论中指出的那样,在使用git config时,没有阻止Git首先插入制表符的选项。)


创建筛选器

创建filter,以便在对文件执行git add操作后立即自动将制表符转换为空格。此筛选器由

创建
git config --global filter.spacify.clean 'expand --tabs=4 --initial'

expand命令表示convert each tab character at the beginning of line to 4 space characters

因此,筛选器的定义既包括做什么,也包括何时做(即针对哪个git操作)。

(在OSX上,您需要在安装coreutils后通过执行brew install coreutils使用gexpand)

当然,您需要决定上述配置的scope(--system--global或默认--local)。


指定将应用筛选器的文件/路径模式

例如,对于您的repository,创建一个.git/info/attributes,内容如下:

.* filter=spacify

这表示apply the spacify filter to any files that match the pattern .*在将这些文件提交到存储库之前。


请注意,上述操作只会影响要添加到存储库中的新文件。如果希望对所有现有文件执行此操作,则可以手动运行expand,或者让Git为我们执行此操作,如下所示:

git config --global filter.spacify.smudge 'expand --tabs=4 --initial'
git checkout HEAD -- **
smudge使用spacify筛选器将导致将筛选器应用于正在签出的文件。签出后,您应该看到对点文件的一系列更改,这些文件将前导制表符转换为空格。重新提交这些文件,从今以后,smudgeclean二人组将使您的点文件无制表符!


更新--拉取请求!

这是您的回购请求:https://github.com/raxod502/radian/pull/156

这篇关于可以告诉git在~/.gitconfig中使用空格吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆