github設定を持つファイルを.gitconfigに含めたいのですが、これは可能ですか?
私はこのようなことをすることができますか?
[core]
include = /path/to/file
Git (1.7.10+) では、次の構文がサポートされるようになりました。.gitconfig
[include]
path = /path/to/file
git の変更とその特殊なケースの詳細な説明については、こちらを参照してください。
ところで、指摘する価値のある微妙な点がいくつかあります。
などの環境変数の展開$HOME
はサポートされていません。(拡張は~
Git 1.7.10.2 で登場)
相対パスが指定されている場合は、[include]
ステートメントを含む .gitconfig ファイルに相対的です。これは、チェーン化されたインクルード間でも正しく機能します-たとえば、次の~/.gitconfig
ようにすることができます:
[include]
path = subdir/gitconfig
そしてsubdir/gitconfig
持つことができます:
[include]
path = nested_subdir/gitconfig
...これによりsubdir/nested_subdir/gitconfig
、ロードされます。
git がターゲット ファイルを見つけられない場合、エラーを黙って無視します。これは仕様によるものと思われます。
更新 2012:
Mike Moreartyの回答を参照してください。
include.path
特別な変数を含めるファイルの名前に設定することにより、ある構成ファイルを別の構成ファイルから含めることができます。
インクルードされたファイルは、その内容が include ディレクティブの場所で見つかったかのように、すぐに展開されます。
変数の値がinclude.path
相対パスの場合、そのパスは、include ディレクティブが見つかった構成ファイルからの相対パスであると見なされます。
の値はinclude.path
チルダ展開の対象です:の値に~/
展開され、指定されたユーザーのホーム ディレクトリに展開されます。$HOME
~user/
そうは思わない。
ユーザー固有の構成ファイル。「グローバル」構成ファイルとも呼ばれます。
そうすれば、GitHub にプッシュされたときに公開されることなく、.gitconfig プロジェクト固有のファイルが完成します。グローバル設定ファイルの詳細については、このSO の回答も参照してください。
Git には3 つの構成ファイルがあります。
bjeanesはコメントに次のように追加します。
誰もがこの質問のポイントを逃したようです。David は明らかに、すべてのドット ファイル ( 、など)
のレポをプッシュしたいと考えています。プライベート エントリを含めたり無視したりして、ファイル の一部をプッシュする方法は、彼 (そして私も) が求めているものです。bashrc
gemrc
.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
ない限り)またはそのための他のドットファイル案件。
defunkt のハブ ツールを使用してこれを達成できると思います 。これは git コマンドのラッパーであり、とりわけ、環境変数を持つことができGITHUB_USER
ますGITHUB_TOKEN
。これにより、ローカル.gitconfig
ファイルの設定が上書きされます。
次に、シームレスにするために、指定したユーザーをalias git=hub
彼のZSH configでエイリアスしました。次に、環境変数を設定するローカル ファイルをソースし、すべての個人情報をそのままにして、リポジトリをパブリックの世界にプッシュできるはずです。
**OSX の自作ユーザーの場合、ツールは からインストールできますbrew install hub
。