可以告诉 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
过滤器将导致过滤器应用于正在检出的文件。结帐后,您应该会看到对点文件的一系列更改,这些文件的前导制表符已转换为空格。重新提交这些,从今以后,smudge
和 clean
组合将使您的点文件无标签!
更新 -- 拉取请求!
这是您的回购的拉取请求:https://github.com/raxod502/radian/pull/156
当我使用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
过滤器将导致过滤器应用于正在检出的文件。结帐后,您应该会看到对点文件的一系列更改,这些文件的前导制表符已转换为空格。重新提交这些,从今以后,smudge
和 clean
组合将使您的点文件无标签!
更新 -- 拉取请求!
这是您的回购的拉取请求:https://github.com/raxod502/radian/pull/156