1

これが私たちが直面している Git の問題なのか IntelliJ の問題なのかはわかりません。IntelliJ で Git 統合を使用すると、次のようになります。

  1. ユーザー A がテキスト ファイルを変更し、この変更をコミットしてブランチbranch1にプッシュします。

  2. ユーザー B は、同じテキスト ファイルを別の行で変更し、 branch1にコミットします。

  3. ユーザー B がリモート リポジトリを取得し、リモートのbranch1をローカルのbranch1にマージします。

現在の動作: 競合することなくマージされます (異なる行のため?)

望ましい動作: 競合の解決ウィンドウがポップアップし、ユーザーは競合しないすべての変更を適用するかどうかを決定する必要があります。

しかし、なぜこの振る舞いが必要なのでしょうか? : マークアップや js ファイルで問題が発生することがありました。ある開発者が上部の何かを変更し (未使用の関数を削除するなど)、別の開発者がこれに依存していました。これらの中断について通知したい場合は、非常にコストのかかる ui テストが必要です。特にマークアップだけの場合 (例: jsf タグ、params)

4

2 に答える 2

1

それはあなたが望む奇妙な振る舞いのようです。最後の編集で、あなたが望む理由はわかりますが、ツール自体に関係のない問題を解決するためにツールを使用したいと思います。

直接的な答えはありませんし、強制的にマージのレビューを行うという選択肢があるとも思えません。ただし、マージの前に同僚に差分を作成するよう依頼するマージ プロセスを開発することはできます。だから基本的に:

  1. ローカル マシンで変更を行う
  2. git diff REMOTE/BRANCH -- files
  3. 開発者に変更のレビューを依頼する
  4. すべてがうまくいった場合は、変更をコミットしてプッシュします。それ以外の場合は、不要な変更を元に戻し、2 から繰り返します。

ご覧のとおり、プロセスは非常にぎこちなく遅くなり、エラーが発生しやすいままです (行を削除すると、通常、何を削除しているのかがわかり、テストが壊れていない場合は、削除を何百回も確認するよう求められることがあります。まだ保持しています)。

これまでのところ、これが私があなたに提案できる唯一の助けです。より直接的な方法で目標を達成する方法を見つけた場合は、この回答にコメントするか、独自の解決策を提供してください。新しいことを学ぶことはいつでもうれしいです!

于 2014-07-04T07:38:21.470 に答える