そこで、git プロジェクトで構成ファイルを処理する方法を探していました。この件に関するいくつかの記事を読みましたが、そのすべてが 2 番目のローカル専用ファイルを提案しています。そして、それは私には正しくありません。
そこで、別の方法で物事を達成する方法を見つけるために、いくつかの git コマンドをいじりました。
これが可能であることがわかった方法は、次のようになります。
ファイル
key : value
この例の構成は、ファイル内の単純なリストです。
local
状態は、テンプレートの最新のプルされたバージョンです:
1 : 1
2 : 2
3 : 3
remote
状態はリポジトリのバージョンです:
1 : 1
a : 2
3 : 3
4 : 4
このファイルには、1 つの新しいフィールド4
と、変更されたフィールドがありますa
。
最後に、working
状態はアプリケーションが使用する構成ファイルです。local
これは、アプリケーションを実行するためのシークレット値で変更されたファイルのコピーです。このバージョンはリポジトリにプッシュしないでください。
1 : secret1
2 : secret2
3 : secret3
フロー
これが私が考えたワークフローです:
オンpull
/ checkout
:
working
書き換えられないように、ファイルを別のファイルにバックアップします。local
とでマージを実行してremote
、最後の構成テンプレートを取得します。- と を多少マージし
local
ますsaved_working
。
最後のマージは、既存のフィールド値を上書きしない限り、追加する新しいフィールドの表示をユーザーに提供する必要があります。
このような操作の例は次のとおりです。
最初のマージ:
- 2 : 2
+ a : 2
+ 4 : 4
2回目のマージ:
1 : secret1
- 2 : secret2
+ a : 2
3 : secret3
+ 4 : 4
そして今、アプリケーションを再び使用できるようになる前に、変更点が明確にわかります。
どう思いますか ?