使用不带配置的git

使用不带配置的git,git,Git,是否有一种方法可以在不加载任何用户或系统配置的情况下使用git(例如,在/etc/gitconfig或$HOME/.gitconfig或本地) 理想情况下,我想要的是: $git--无配置提交-m“提交消息” 我想要的这个特定用例是集成测试,它对某些操作使用git。我不希望用户的git配置干扰测试。您可以设置ENV vargit\u config\u NOSYSTEM跳过读取系统配置()和git\u config()来使用特定于集成测试的git配置文件。有一个命令行参数来覆盖预设的配置值,请参阅

是否有一种方法可以在不加载任何用户或系统配置的情况下使用
git
(例如,在
/etc/gitconfig
或$HOME/.gitconfig或本地)

理想情况下,我想要的是:

$git--无配置提交-m“提交消息”


我想要的这个特定用例是集成测试,它对某些操作使用
git
。我不希望用户的git配置干扰测试。

您可以设置ENV var
git\u config\u NOSYSTEM
跳过读取系统配置()和
git\u config
()来使用特定于集成测试的git配置文件。

有一个命令行参数来覆盖预设的配置值,请参阅

它必须在子命令之前使用,例如

git -c user.name=NotMe -c user.email=not@me.com am 0001_fancy_patch

您可以使用matb的答案,或者,请注意Git有它所称的管道命令,用于脚本使用,一般来说,管道命令不依赖于配置设置,因此如果您的集成测试使用管道命令而不是面向用户的命令,这些设置不会影响它。只要我同时覆盖
$HOME
,这似乎就行了。例如,
GIT\u CONFIG\u NOSYSTEM=1 GIT\u CONFIG=/dev/null GIT commit--allow empty-m'test'
仍然从我的
$HOME/.gitconfig
读取数据,但是
GIT\u CONFIG\u NOSYSTEM=1 GIT\u CONFIG=/dev/null HOME=/null GIT commit--allow empty-m'test'
不允许。这看起来没问题。谢谢,真有趣!您可以将
$XDG\u CONFIG\u HOME
设置为侵入性较小的选项()。我正在查看当前最新的git版本(2.12),因此您使用的版本可能会有所不同;)