可以告诉 git 在 ~/.gitconfig 中使用空格吗?

Can git be told to use spaces in ~/.gitconfig?

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

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

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

这对我有用(请注意,正如@rasjani 在评论中指出的那样,没有选项可以 阻止 git 在使用 git config.)

时第一名

创建过滤器

创建一个 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 上,您需要在 通过 brew install coreutils 安装 coreutils 后使用 gexpand

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


指定要应用过滤器的 files/path 模式

例如,对于您的 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