質問

私は、ほとんどの構成がコード自体の中に含まれている非常に再開されたコードを使用して、独自のスクリプト言語で開発しています。

明らかな問題は、テスト環境と本番環境の間のコード自体の違いであり、それこそが私がGITで管理しようとしていることです。

テスト環境は非常に不安定なので、変更が加えられている間(そして、テスト構成を含むコードを保持している間)、GITにブランチを作成し、コードが受け入れられた後、マージすることができると考えました。生産に。

まあ、gitにブランチをマージするように頼むと、コードで素晴らしい仕事をします。しかし、構成も移行され、ファイルごとに開いて元の状態に戻す必要があります。

とにかく、GITからの自動マージを無効にして、コードの競合が発生したときにすべてを脅かして、WinMergeなどと手動でマージすることはできますか?コードは本当に短いです。とにかく設定を適用するために編集する必要があるので...

ps。:注意してください、私はgitでWinMergeを構成する方法を尋ねていません。これらのツールを使用しています。私の質問は、ブランチ間で常に手動マージを実行する方法です。

ありがとう!

f。

役に立ちましたか?

解決

自動マージを無効にする

これは、一般的なタグコードファイルに設定された小さなマージドライバーを作成することで実現できます。
.gitattributesのようなポリシーがあなたが探しているものかもしれません。 ジェネラコディセタグプレ

現在のブランチのバージョンを暫定的なマージ結果として取得し、マージに競合があることを宣言します。 これは、明確に定義されたマージセマンティクスを持たないバイナリファイルに適しています。

しかし、もう1つの興味深いgitattributeドライバーは、クリーンファイラーです。

http://git-scm.com/figures/18333fig0703-tn.png

これにより、「クリーンな」コンテンツをリポジトリにコミットする直前に、選択した「クリーン」スクリプトが自動的に実行されます。
このような「unset」スクリプトは、コードに埋め込まれている構成値を保持または変更するためにコードに加える必要のある変更を自動化するのに役立ちます。

他のヒント

「ほとんどの構成はコード自体に含まれている」と言いますが、すべての構成が構成固有のファイルに分離されていることを願っています。その場合は、構成コードのテストケースとリリースケースの両方を同じブランチに保持できます。次に、コマンドラインスイッチを使用して、通常の構成の代わりにテスト構成を使用できます。

プログラムがコマンドライン(または環境変数、レジストリキー、テキストファイルなど)から構成の選択を読み取ることができる場合は、マージする必要はまったくありません。プログラムは、コマンドラインスイッチが存在しない場合はテスト構成ファイルを無視し、コマンドラインスイッチが存在する場合はリリース構成を無視できます。

これにより、マージ中に発生する可能性のある間違いや、マージにかかる時間を節約できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top