1. ホーム
  2. git

[解決済み] git リベースのマージ戦略はどのように選択するのですか?

2022-04-22 22:12:34

質問

git-rebase マンページで言及されている -X<option> に渡すことができます。 git-merge . 具体的にはいつ、どのように?

でパッチを適用してリベースしたいのですが、どうすればいいですか? 再帰的 ストラテジーと その オプション (競合するコミット全体をスキップするのではなく、固着したものを適用する) があります。私はマージではなく、歴史をリニアにしたいのです。

試してみました。

git rebase -Xtheirs

そして

git rebase -s 'recursive -Xtheirs'

が、git は拒否します。 -X を使用すると、両方のケースで


git rebase -Xtheirs は最近のバージョンでは、ツリーのコンフリクトを手動で解決する必要があることを除いて、動作します。そのため git rebase -Xtheirs --continue (ただし -X を繰り返し、それらのコンフリクトを解消した後。

どのように解決するのですか?

Git v1.7.3以降のバージョンで使用可能です。

git rebase --strategy-option theirs ${branch} # Long option
git rebase -X theirs ${branch} # Short option

(これは git rebase --strategy recursive --strategy-option theirs ${branch} とあるように ドキュメント )

Git v1.7.3リリースノートより。

git rebase --strategy <s> を学びました。 --strategy-option / -X オプションで、選択したマージ手法が理解できる追加オプションを渡します。

NB: "Ours" と "Theirs" は、ストレート マージ中に行うのと反対の意味を持ちます。 つまり、"theirs" は、(1) (2) (3) のコミットを優先します。 現在の ブランチです。