当我使用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上,通过执行
gexpand
在安装coreutils之后,您需要使用brew install coreutils
)当然,您需要确定上述配置的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 -- **
对
spacify
使用smudge
过滤器将导致该过滤器应用于被 check out 的文件。 checkout 后,您应该看到对点文件的一堆更改,这些文件的前导制表符已转换为空格。重新提交这些文件,从此以后,smudge
和clean
二重奏将使您的dotfile保持无标签状态!更新- pull 请求!
这是您的 repo 请求请求:https://github.com/raxod502/radian/pull/156
关于git - 可以告诉git在〜/.gitconfig中使用空格吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40091541/