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
会导致将过滤器应用于正在签出的文件。 结帐后,您应该看到一系列点阵文件的变化,这些变化将领先的制表符转换为空格。 重新提交这些内容并从此之后, smudge
和clean
二重奏组将保持您的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