「git merge -s ours」の「theirs」バージョンはありますか? 質問する

「git merge -s ours」の「theirs」バージョンはありますか? 質問する

を使用してトピック ブランチ「B」を「A」にマージするとgit merge、いくつかの競合が発生します。すべての競合は「B」のバージョンを使用して解決できることはわかっています。

は承知していますgit merge -s ours。しかし、私が欲しいのは のようなものですgit merge -s theirs

なぜ存在しないのでしょうか? 既存のgitコマンドとの競合マージ後に同じ結果を得るにはどうすればよいですか? ( git checkoutB からのマージされていないすべてのファイル)

ブランチ A (ツリーの B バージョンへのマージ コミット ポイント) からすべてを破棄するだけの「解決策」は、私が探しているものではありません。

ベストアンサー1

同様の代替として、--strategy-option(短縮形-X)オプションがあり、 を受け入れますtheirs。例:

git checkout branchA
git merge -X theirs branchB

-X oursただし、これは よりもと同等です-s ours。主な違いは、 は-X通常の再帰マージを実行し、選択された側を使用して競合を解決するのに対し、 は-s oursマージを変更して、もう一方の側を完全に無視することです。

場合によっては、-X theirs仮想の代わりに使用することで主な問題となる-s theirsのは、削除されたファイルです。この場合は、git rm削除されたファイルの名前を指定して実行します。

git rm {DELETED-FILE-NAME}

その後は-X theirs期待通りに動作するはずです。

もちろん、git rmコマンドを使用して実際の削除を実行すると、そもそも競合が発生するのを防ぐことができます。

おすすめ記事