2017-05-29 14 views
6

私のgitワークフローでは、featureブランチをmasterにマージする必要があります。 しかし、私はマージの競合を解決している間に、誰かがfeaturemasterに新しいコミットをプッシュしました。解決済みのgitマージを別のマージにコピー

私はnew featurenew masterに基づいて、新しいマージコミットを生成する必要があります。しかし、マージ競合の90%はまだ同じです。 私の質問はそうです。 first mergeから進捗状況を保存し、new mergeの競合フェーズで適用できますか?

+--------+  +--------+    +------------+ 
|  |  |  |    |   | 
| init +------> | master +-----------> | new master | 
|  |  |  |    |   | 
+--------+  +--------+    +------------+ 
     |     |        | 
     |   +---------+   +-------------+ 
     |   |   |   |    | 
     +---------> | feature +----------> | new feature | 
        |   |   |    | 
        +---------+   +-------------+ 
        | |       || 
        | |       || 
        | |  +----------------+ ||  +-----------+ 
        | +----> |    | +--------->   | 
        |   | first merge | |   | new merge | 
        +----------->    | +--------->   | 
           +----------------+    +-----------+ 

答えて

1

ギルトにはrerereという機能があります。この状況で使用することができます。 設定ファイルでrerereを有効にするだけで動作します。 私はそれがこの問題を解決する正しい方法だと思います。

https://git-scm.com/blog/2010/03/08/rerere.html

https://git-scm.com/docs/git-rerere

、事前にそれを有効にせずに、この機能を使用するには、スクリプトhttps://github.com/git/git/blob/master/contrib/rerere-train.shはあなたを助けることができます。

多分簡単な方法があります。 new featurefirst mergeをマージし、結果をnew masterにマージします。

+0

私はgit-rerereを見ていきます。私は追加のマージでそれを解決することができますが、私はあまりにも多くのマージコミットを作成したくありません。 –

+0

rerereはマージ数を減らさず、手動で処理する必要があるマージ競合の数を減らす可能性があります。 –

関連する問題