2016-12-15 9 views
1

git cherry-pickを使用して別のブランチに複雑な機能をリベースしています。大きなコミットで競合を解消しようとするとき、私は最初に適用されるべきコミットを見逃していることが分かります。コンフリクト解決中の隠し変更

私は現在の状態をstashできません。他のコミットを適用してからstash popを実行してください。
私はcherry-pick --abortを実行し、もう1つのコミットを適用してから再びチェリーを選んでください。しかし、解決された競合は失われます。

このような状況に対処する最善の方法は何ですか?

+0

"should be"または "must be"ですか?前者の場合は、引き続き解決をコミットしたときの状況を修正します。 – j6t

+0

紛失したコミットはすでにいくつかの競合を処理しているため、手動で処理する必要はありません。 –

+0

私は過去に、そしてあなたが描いているのと同じ状況で、大きな相反するマージをしました。私は弾を打ち、マージを完了する。その後、巻き戻し、有用な他のコミットを適用して、マージを再開します。幸運なことに、 'rerere'マシンはコミットの多くを自動的に解決します。 – j6t

答えて

1

j6tadviceに続いて、もう一度巻き戻して、他のコミットを適用して、再びcherry-pickを適用することができます。

考えてみましょう。git rerereがアクティブであることを確認して、マージ競合をもう一度解決しないようにすることです。

rerereを有効にしなかった場合は、最初のマージの競合解決を忘れることがないように、rerere-train.sh script I mentioned beforeになります。

関連する問題