[解決済み] git rebase の取り消し
2022-03-15 21:27:12
質問
git rebaseを簡単に取り消す方法を知っている人はいますか?
思い当たるのは手動でやるしかない。
- コミットの親を両方のブランチに git checkout します。
- そして、そこからtempブランチを作成します。
- すべてのコミットを手作業でチェリーピックする
- リベースしたブランチを、手動で作成したブランチに置き換える
私の現在の状況では、両方のブランチからのコミット(一方は私のもの、もう一方は同僚のもの)を簡単に見つけることができるので、これはうまくいきそうです。
しかし、私のやり方は最適とは言えず、エラーが起こりやすいと思います(自分のブランチを2つ使ってリベースしたとしましょう)。
何かアイデアはありますか?
明確にしてください。私が言っているのは、リベース中に多くのコミットが再生されたことです。1つだけではありません。
解決方法は?
最も簡単な方法は、リベースを開始する直前のブランチの先頭コミットを リフロ ...
git reflog
で現在のブランチをリセットします (ただし、リセットする前に必ず
--hard
オプションを使用します)。
仮に古いコミットが
HEAD@{2}
を ref log に追加しました。
git reset --hard HEAD@{2}
Windowsの場合、リファレンスを引用する必要がある場合があります。
git reset --hard "HEAD@{2}"
をするだけで、候補となる古いheadの履歴を確認することができます。
git log HEAD@{2}
(
Windowsです。
git log "HEAD@{2}"
).
ブランチごとのリブログを無効にしていないのであれば、次のようにすればよいでしょう。
git reflog branchname@{1}
リベースは最終ヘッドに再接続する前にブランチヘッドを切り離すからです。最近検証していないので、再確認しておきます。
デフォルトでは、すべてのリフロッグは非ベアリポジトリに対して有効になっています。
[core]
logAllRefUpdates = true
関連
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Gitを使って最後のXコミットをまとめる
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルの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のエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】Githubエンタープライズ - リモート。Git の操作でパスワード認証が利用できない
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] git commit signing failed: secret key not available.
-
[解決済み] Gitのエラー「object file ... is empty」はどうすれば直せますか?
-
[解決済み] git push」の取り消し
-
[解決済み] Git リベースをロールバックする方法