5

(一種の)3方向の競合解決を使用して、常にgitを強制的にマージしたいと思います。しかも、単線も選べるようにしたい。

現在、2 つのブランチをマージしています。ただし、可能であれば、複数のブランチをマージする場合でも、このタスクを実行する方法を知りたいです。

4

2 に答える 2

2

Git はデフォルトで 3 方向のマージを試みます ( recursive2 つのヘッドのoctopus戦略と 3 つ以上のヘッドの戦略)。

手動でマージするときに 3 方向の解像度オプションを表示する場合は、 merge.conflictstyleconfig オプションを に設定してみてくださいdiff3

(そのオプションの詳細については、 git-mergeman ページの「構成」セクションを参照してください。)

于 2010-10-06T23:50:55.313 に答える
0

ブログ投稿「5 つの高度な Git マージ手法」では、diff3 設定についてさらに詳しく説明しています。

を使用して diff3 の競合を有効にしgit config --global merge.conflictstyle diff3ます。diff3 競合スタイルは、新しいマーカーとマーカー
の間に追加のセクションを追加します。これは、次のことを示します。|||||||=======

  • セクションの元の内容、
  • 上記の変更と
  • それらの (マージされているブランチ) 以下の変更。

diff ツールがなくても、このコマンドgit showは役に立ちます。

マージの内部では、特殊な:N:構文 (Nは数字) を使用して、マージの親の 1 つを自動的に選択できます。

  • 1共通ベースコミット (下位リビジョン) を選択し、
  • 2バージョン (" mine") を選択し、
  • 3バージョン (より高いリビジョン) を選択します。

Sogit show :3:foobar.txtのアップストリーム バージョンを示しますfoobar.txt

于 2012-10-05T15:11:59.450 に答える