ここでは、私が長い間戸惑ってしまっているのは、私がうまく普遍的な解決策を見つけることができないためです。gitを使用したブランチ固有の構成ファイルのメンテナンス
利用可能な2本のgitの枝、production
とdev
があるとしましょう。それぞれは、いくつかのタスク(すなわち、資格証明、ビルドパス、テスト/配備スクリプトの切り替えなど)のための独自の設定可能なパラメータを使用します。同じ時刻の実装スクリプト&のコードは両方のブランチで共通です。
ここで、問題は、gitリポジトリ内のブランチ固有の設定を必要な方法で維持する方法です。そこに共通の解決策の一つは、シンボリックリンクや特定のブランチのためのコンクリートを無視して、
$ cat .gitignore | grep conf
/concrete.conf
$ ls -l *.conf
lrwxrwxrwx 1 1000 100 12 Oct 29 10:23 concrete.conf -> generic.conf
-rw-r--r-- 1 1000 100 0 Oct 29 10:16 generic.conf
破壊のようにして、次の開発ボックスにconcrete.conf
を調整し、gitの中に「テンプレート」の設定ファイルを使用することです。しかし、私が追求している解決策ではありません。
私の要件は(OK、はを希望する)です:Gitのブランチあたり
- サポート個別の設定ファイル、および
- はgitの同じ時間で管理されるブランチ固有の設定ファイルを保つ
それも可能ですか? (実際には、他のファイルがソースになっていることが好ましいが、関連性がない...)
これまでのところ、マージ後のフックを使用してブランチごとの設定それ自体はgitによって無視されている他のソースからのですが、最初から悪臭を放っています。
問題の解決方法についてのご意見はありますか?
PS:* nixの固有の提案(すなわち、シンボリックリンク/ハードリンクを使用して)の提案は、私はM $に興味はそれが可能であり、かつシンボリックリンクを含まない
ありがとうございます、これは一目瞭然です。私はあなたの答えを受け入れる前にそれをしばらく噛んで消化する必要があります。 – agg3l
それは自然にコミット/チェックアウト/ etcフックを伴います。私も自分自身を見ていた方向。いくつかのフックを使用せずに解決策がないと思います。問題についての論理的な結果は、 – agg3l
で書かれています。@フックは正確ではありませんが、 '.gitattributes'スマッシュスクリプトの宣言を有効にするにはローカル設定が必要です。 – VonC