2017-05-10 22 views
0

The Git docsデフォルトのグローバルgit設定ファイルの場所($XDG_CONFIG_HOME/git/configまたは~/.gitconfig)について話しますが、gitコマンドにそのファイルを無視するように指示する方法はありません。グローバル設定を無視するようにgitに指示するには

$GIT_CONFIG_NOGLOBAL$GIT_CONFIG_NOSYSTEMに似ています)、またはgitコマンドに渡すフラグ(例:--ignore-global-config)を探しています。私の標準的なgit設定(特にcommit.gpgsign true)がgitを使用するテストスイートに干渉するため、これが必要です。

現在できていない場合は、問題追跡システムで問題を提起できます。

+1

コマンド実行中に '$ HOME'または' $ XDG_CONFIG_HOME'を代替値に設定してください。これはちょっとしたことです(設定されている他の*設定ファイルがすべて必要な場合があります)が、これは対処方法の1つです。または、構成を持たないユーザーとしてテストを実行します。一般的には設定項目を読んでいない* plumbingコマンドを使用しているので、スクリプトで使用するコマンドになっています。 – torek

+1

'GIT_CONFIG_NOSYSTEM = 1 git do thing'のように、一時的にenvvarを設定してコマンドを実行することができます。 – Pockets

+0

なぜgitを使用するテストスイートがありますか?あなたがgitをテストしているようですね? –

答えて

2

標準のgit設定(特にcommit.gpgsign true)は、gitを使用するテストスイートに影響するため、必要です。

私はそれをテストスイートのバグと呼んでいます。外部の設定を無視するように設定する必要があります。これをテストスイートの著者に報告することをお勧めします。

GIT_CONFIG_NOSYSTEM

システム全体の$(接頭辞)から読み取り設定をスキップするかどうかは/ etc/gitconfigファイル:彼らはあなたが行うだろうと同じことを行うだろう。この環境変数は、$ HOMEや $ XDG_CONFIG_HOMEとともに、厄介なスクリプトのための予測可能な環境を作るために使うことができます。 は、/ etc/gitconfigファイルのバグを避けるために一時的に設定することができます。 修理する。

設定GIT_CONFIG_NOSYSTEM、解除XDG_CONFIG_HOME、変更$HOME。あなたは、彼らはGitが隔離されていることを確認するために行うすべての多くのものを見ることができますGit test suiteへのリンクを


@Pockets commented

+1

'GIT_ATTR_NOSYSTEM'も設定してください(Gitテンプレートのような他のグローバル設定がある場合は、それらも設定解除/再設定する必要があります)。参考までに、Gitテストスイートは、[このスクリプト](https://github.com/git/git/blob/master/t/test-lib.sh)を使用して、すべてのテストの環境を準備します。 – Pockets

+0

はい、私は毎回自分でコマンドを実行するのではなく、テストスイートを更新する予定でした。 残念なことに、ホームを変更すると、他の多くのツールが壊れますので、ホームディレクトリをモックアップする必要があります。しかし、確認していただきありがとうございます。 – gib

+1

@gib代わりに、libgit2ラッパーライブラリーを使用する方法もあります。これにより、設定をどこから読み取るかをより詳細に制御できます。結果をgitして解析するためには、常にシェルする必要があるよりも簡単です。私はほとんどのgitの自動化のためにそれを行います。libgit2を使用するには学習曲線が険しいですが、良いラッパーライブラリは使い慣れた方法を提供します。 – Schwern

関連する問題