从命令行使用git属性

时间:2013-09-23 01:33:30

标签: regex git attributes

我在我的仓库上有这个配置:

echo '*.java diff=java' >> .gitattributes

当我git diff ...时,我得到了预期的结果。

但是,我正在编写一个脚本来分析其他git存储库,所以我通常会这样做:

git --git-dir='/path/to/repo/.git' diff ...

我想要做的是运行这样的脚本,并且具有与属性存在时相同的结果。我不想设置全局属性或将.gitattributes添加到我想要分析的git项目中。我不介意像

这样的东西
git --git-dir='/path/to/repo/.git' diff --word-diff-regex=<java-rexeg> 

但我不知道如何获得java regex git使用。

1 个答案:

答案 0 :(得分:4)

来自git help config

  

core.attributesfile

     

除了.gitattributes(每个目录)和.git / info / attributes之外,git还会查看此文件中的属性(请参阅gitattributes(5))。路径扩展的方式与core.excludesfile相同。其默认值为$ XDG_CONFIG_HOME / git / attributes。如果$XDG_CONFIG_HOME未设置或为空,则使用$HOME/.config/git/attributes代替。

换句话说,您可以在$XDG_CONFIG_HOME/git/attributes创建自己的属性文件,并将XDG_CONFIG_HOME传递给您的git调用,如下所示:

XDG_CONFIG_HOME=config_dir git --git-dir='/path/to/repo/.git' diff ...

因为你确切地控制了什么是XDG_CONFIG_HOME,所以它不会是真正的全局性 - 你可以完全实现它。

或者,在$HOME/.config/git/attributes中创建全局git属性文件可能更简单。