git可以被告知在〜/ .gitconfig中使用空格吗?

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

可以告诉Git在添加条目到~/.gitconfig时自动使用空格吗?

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


这对我来说很有用(请注意,@rasjani在评论中指出,使用git config时,无法防止git在第一个位置插入选项卡。)


创建过滤器

创建一个filter以便git add为文件执行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上,通过执行brew install coreutils安装coreutils后,您需要使用gexpand

当然,您需要确定上述配置的范围( --system ,-- --global或default --local )。


指定将应用过滤器的文件/路径模式

例如,对于您的存储库,请使用以下内容创建.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会导致将过滤器应用于正在签出的文件。 结帐后,您应该看到一系列点阵文件的变化,这些变化将领先的制表符转换为空格。 重新提交这些内容并从此之后, smudgeclean二重奏组将保持您的dotfiles无标签!


更新 - 拉取请求!

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

链接地址: http://www.djcxy.com/p/36675.html

上一篇: Can git be told to use spaces in ~/.gitconfig?

下一篇: Java code to calculate number of mid nights (00:00:00) in a date range