263

github設定を持つファイルを.gitconfigに含めたいのですが、これは可能ですか?

私はこのようなことをすることができますか?

[core]
    include = /path/to/file
4

4 に答える 4

331

Git (1.7.10+) では、次の構文がサポートされるようになりました。.gitconfig

[include]
    path = /path/to/file

git の変更とその特殊なケースの詳細な説明については、こちらを参照してください。

ところで、指摘する価値のある微妙な点がいくつかあります。

  1. などの環境変数の展開$HOMEはサポートされていません。(拡張は~Git 1.7.10.2 で登場)

  2. 相対パスが指定されている場合は、[include]ステートメントを含む .gitconfig ファイルに相対的です。これは、チェーン化されたインクルード間でも正しく機能します-たとえば、次の~/.gitconfigようにすることができます:

    [include]
        path = subdir/gitconfig
    

    そしてsubdir/gitconfig持つことができます:

    [include]
        path = nested_subdir/gitconfig
    

    ...これによりsubdir/nested_subdir/gitconfig、ロードされます。

  3. git がターゲット ファイルを見つけられない場合、エラーを黙って無視します。これは仕様によるものと思われます。

于 2012-03-16T07:09:33.217 に答える
17

更新 2012:

Mike Morearty回答を参照してください。

含む

include.path特別な変数を含めるファイルの名前に設定することにより、ある構成ファイルを別の構成ファイルから含めることができます。
インクルードされたファイルは、その内容が include ディレクティブの場所で見つかったかのように、すぐに展開されます。
変数の値がinclude.path相対パスの場合、そのパスは、include ディレクティブが見つかった構成ファイルからの相対パスであると見なされます。
の値はinclude.pathチルダ展開の対象です:の値に~/展開され、指定されたユーザーのホーム ディレクトリに展開されます。$HOME~user/


そうは思わない。

その設定をファイルに入れたい~/.gitconfig

ユーザー固有の構成ファイル。「グローバル」構成ファイルとも呼ばれます。

そうすれば、GitHub にプッシュされたときに公開されることなく、.gitconfig プロジェクト固有のファイルが完成します。グローバル設定ファイルの詳細については、このSO の回答も参照してください。
Git には3 つの構成ファイルがあります。


bjeanesはコメントに次のように追加します。

誰もがこの質問のポイントを逃したようです。David は明らかに、すべてのドット ファイル ( 、など)
のレポをプッシュしたいと考えています。プライベート エントリを含めたり無視したりして、ファイル の一部をプッシュする方法は、彼 (そして私も) が求めているものです。bashrcgemrc.gitconfig
.gitconfig

可能な方法は、スマッジ/クリーン フィルター ドライバーを使用して、個人の機密情報を含む 1 つのファイルを復号化/暗号化することです (このスレッドを参照)。これにより、関連する復号化された部分で ~/.gitconfig のようなローカル ファイルが完成します。ファイル。

そうすれば、すべてのドット ファイルを含む Git リポジトリに加えて、暗号化された情報を含む 1 つのファイルを復号化してドット ファイルに追加することができます。

代替テキスト

(.gitattributesまたは.git/info/a..) 使用中:

myPrivateInfosFile filter=gpg diff=gpg

レポ .config ファイルで:

[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt

(もちろん、 GPGベースのソリューションは、この特別なレポを複製してすべてのドットファイルを復元したい宛先コンピューターに、別の方法で秘密鍵/公開鍵を伝達したことを意味します)

実際、あなたの場合、スマッジスクリプトを完了する必要があるため、そのファイルを復号化した後、関連する部分をグローバルファイルに追加します(グローバル構成ファイルを別の場所で上書きし~/.gitconfigない限り)またはそのための他のドットファイル案件。

https : / _ _ _

于 2009-10-13T04:03:05.117 に答える
2

defunkt のハブ ツールを使用してこれを達成できると思います 。これは git コマンドのラッパーであり、とりわけ、環境変数を持つことができGITHUB_USERますGITHUB_TOKEN。これにより、ローカル.gitconfigファイルの設定が上書きされます。

次に、シームレスにするために、指定したユーザーをalias git=hub彼のZSH configでエイリアスしました。次に、環境変数を設定するローカル ファイルをソースし、すべての個人情報をそのままにして、リポジトリをパブリックの世界にプッシュできるはずです。

**OSX の自作ユーザーの場合、ツールは からインストールできますbrew install hub

于 2011-09-06T20:56:08.393 に答える