[解決済み] Git リベースをロールバックする方法
2022-06-03 04:29:36
質問
Git では、リベースに満足できない場合、どのようにロールバックしますか?
Git には、リベースのためのドライランがありません。リベースを行い、まだプッシュしていない場合、どうすれば何もなかったかのように以前の状態にロールバックできるのでしょうか。
どのように解決するのですか?
あなたは リフロ を使って、リベースが始まる前の最初のアクションを見つけて、 --hardをリセットしてそこに戻ることができます。
$ git reflog
b710729 HEAD@{0}: rebase: some commit
5ad7c1c HEAD@{1}: rebase: another commit
deafcbf HEAD@{2}: checkout: moving from master to my-branch
...
$ git reset HEAD@{2} --hard
これで、リベースが始まる前に戻ったはずです。
リセットする正しい場所を見つけるには、一番上にある がない で始まっていない一番上のエントリを選ぶだけです。
更新:コメントや他の回答で紹介されているように
ORIG_HEAD
を使用すると、リセットする場所を簡単に見つけることができます。
git reset ORIG_HEAD --hard
別のアプローチ
もしリベースが
だけである場合
である場合、つまり、プッシュされていないコミットや変更がない場合、ローカルブランチを削除するには
git branch -D
でローカルブランチを削除し、再度チェックアウトすればよいのです。
$ git checkout my-branch
$ git rebase master
// not happy with the result
$ git checkout master
$ git branch -D my-branch
$ git checkout my-branch
あるいは、同じ効果を得るために、--hardをオリジンブランチにリセットすることもできます。
$ git reset --hard origin/my-branch
もし、他の未プッシュのコミットがあるときにこの操作をしたのなら、それらを失ってしまうことになります。その場合、コミットを行った reflog エントリにジャンプするために、上記の reflog アプローチを使用するだけです。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ローカルにない作業がリモートに含まれているため、アップデートが拒否された
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push s...
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] "would clobber existing tag "を取り除くには?
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?
-
[解決済み] Git作者不明
-
[解決済み] git rebase の取り消し