2017-06-07 21 views
0

私のリポジトリにローカルな変更がありました。プッシュする前に、私は遠隔からフェッチし、それを再配置していくつかの競合を示し、私はそれを修正しました。Git rebaseを元に戻す--abort

私は自分の変更をプッシュしようとしましたが、コミットする前にstill need mergeと表示されていましたので、変更をコミットすることなくrebase --abortを実行しました。その後私のローカルな変更はなくなった。 私はgit reflogを試しました。私はdidnt以来私を見つけません。commit

地域の変更が必要です。どうすれば元に戻すことができますか? rebase --abort私の変更をどうやって削除しますか?

私はrebase --continueを修正しました。それは更新が必要だと言いますから。あなただけが私に与えたものですrebase --abort

+0

各マージ競合の後に 'git rebase --continue'を実行しましたか?もしそうなら、あなたの作業ディレクトリは空でなければならず、 'git rebase --abort'は効果がないはずです。私が推測することは、あなたが正しくリベースを完了しなかったことです。あなたの地域の変更が失われる可能性があります。 –

+0

はい私はまだ必要なマージを示しています....それはなぜリベースを与えたのですか?--abort –

+1

リベースを中止すると、リベースが発生した前の状態に戻りました。このための回避策はありません。リベースをやり直して、今度は同じミスをしないでください。 –

答えて

1

上記のコメントと一緒に質問しても、あなたがリベースを開始して途中で進捗しましたが完了しなかったようです。代わりに、git rebase --abortと入力しました。これにより、リベース全体を、リベースを開始する前の時点まで効果的にロールバックします。リベースを中断することに害はなく、マージの競合を解決した作業を保存します。

いずれにしても、rebase origin/<branch>をもう一度起動することができます。今回は、競合する各ファイルをステージに追加し、git rebase --continueを使用して各コミットが適用されるたびに競合を解決します。すべてのコミットが再生されたら、ブランチしたブランチは空の作業ディレクトリで準備ができているはずです。

関連する問題