我在我的仓库上有这个配置:
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使用。
答案 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属性文件可能更简单。