回答:
編集:以下の答えも見て、それがあなたにとってより簡単な解決策であるかどうかを確認してください。 https://stackoverflow.com/a/12163247/493106
私はそれを試さなければならないでしょうが、これは私が何をするかだと思います:
git tag temp
git rebase --abort
git rebase --continue
git cherry-pick temp
これに関する問題は、あなたのtemp
コミットがおそらくマージの解決と新しいコードの両方を含んでいることです。だからそれはトリッキーかもしれませんが、私はそれを試してみて、それがうまくいくかどうか見てみます。
ただしてくださいgit reset --soft HEAD^
。HEADポインターを親に移動しますが、作業ツリーは保持し、マージ変更をインデックスに追加します。したがってgit rebase --continue
、以前と同じようにリベースを続けることができます。
同じ問題が発生し、さらに悪いことに、3つのコミットをリベースしており、2番目のコミットで競合を解決した後、「rebase --continue」ではなく「commit」しました。
その結果、私はこのgit reflogを持っていました
kirikazaのソリューションを適用すると、2番目のコミットではなく3番目のコミットを元に戻したため、問題が発生しました。
ご覧のように、リベースはremotes / origin / masterブランチからのチェックアウトから始まり、reflogの前の3つの操作(チェックアウト前)として表示される3つのコミットを適用します。
次に、リベースの前にクリーンベースから再起動する場合は、リベース操作のチェックアウトの直前にハッシュにハードリセットするだけです。私の場合(写真を参照):
git reset --hard 859ed3c
その後、新しいを開始できますgit rebase
。