1. ホーム
  2. git

[解決済み] 前回の git マージの後に git rebase を行う

2023-05-02 13:07:27

質問

次のような状況です。

  • を作成しました。 clone (Y) を作成しましたが、Y には多くの人が関わっていたので rebase をせず、ただ merge s. 配信したいとき( push ) Y を X に届けたいときは rebase を行いたい。

問題は rebase を実行するときに、前の merge ステップで既に行ったすべてのマージを行うよう求められます。これに対する解決策は、実際にマージをやり直すということ以外にありますか?

競合するマージをすでに解決しているので、かなり簡単だと予想していました。

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

履歴をきれいにするためにリベースを行うことは、過大評価です。 歴史を保存したい場合、最良の方法は、リベースの代わりにマージを行うことだけです。 そうすれば、あるリビジョンに戻る必要がある場合、そのリビジョンは まさに と同じになります。 また、以前に解決したマージの競合についての問題も解決されます。

履歴の保存を気にしないのであれば、master から新しいブランチを作成し、それをチェックアウトした後に git read-tree -u -m dev を実行して作業ツリーを更新し dev ブランチと一致するように作業ツリーを更新します。 そして、すべてをひとつの大きなコミットとしてコミットし、通常どおり master にマージすることができます。