1

開発と展開用に 2 つのブランチがあります。開発ブランチにマージしたいいくつかの変更をデプロイ ブランチにコミットしました。今、私はマージコマンドがそのような場合に競合を表示することを期待していました-

//development
$path = 'localhost';

//deployment
$path = 'example.com';

代わりに、展開ブランチ ラインが開発ブランチ ラインを置き換えるだけです。コミットをチェリーピックして開発ブランチに適用するか、手動で変更を加えることができますが、これを行うにはもっと良い方法があるはずだと思いました。

4

2 に答える 2

0

その構成ファイルは大きく異なるため、このタイプのファイルのマージの問題を完全に回避することをお勧めします。

その構成ファイルの値を別のファイルにバージョン管理する必要があります。

  • config_dev.values
  • config_depl.values

そして、値のプレースホルダーを持つバージョン管理されconfig.templateたファイルは1 つだけになります。

// server name for dev or deployment or other environments
$path = '@@SERVER_NAME@@'

そうすれば、このテンプレート ファイルは変更されず、マージされません。
また、チェックアウト時に実際の構成ファイルを生成できるスクリプトをバージョン管理します (これはバージョン管理されず、「プライベート」のまま、つまり現在の作業ディレクトリに対してのみローカルになります)。

コンテンツ フィルター ドライバー

そのスクリプトをファイル内のコンテンツ フィルター ドライバーとして宣言すると、自動的.gitattributesに で実行さgit checkoutれ、config.template ファイルとして認識されるファイルを探します (スクリプトはファイル名やファイル パスを渡さず、チェックアウトされた各ファイルのコンテンツのみを取得します)

于 2012-05-19T07:08:15.800 に答える
0

開発ブランチでも変更した場合にのみ競合します。したがって、展開でのみ変更したため、通常のバージョン変更にすぎません。

その特定のファイルを変更セットにコミットしないでください。(そのファイルに他の変更を加えていないと仮定します)

于 2012-05-19T00:11:54.673 に答える