1. ホーム
  2. git

[解決済み] Git - 削除されたコミットを復元できますか?重複

2023-01-12 02:16:34

質問

驚きました、SOでは答えが見つからなかったのです。

git で削除されたコミットを回復/復元することはできますか?

例えば、こんな感じです。

# Remove the last commit from my local branch
$ git reset --hard HEAD~1

# Force push the delete
$ git push --force

さて、削除されたコミットを取り戻す方法はあるのでしょうか?gitは内部で削除を記録(ログ)しているのでしょうか?

どのように解決するのですか?

そのコミットに戻るには reflog を使って参照元を調べることができます。

<ブロッククオート

参照ログ(reflogs")は、ブランチやその他の参照の先端がローカルリポジトリでいつ更新されたかを記録するものです。 他の参照がローカルリポジトリで更新されたときを記録します。

このコマンドを実行します。

git reflog

最初のいくつかのエントリをスキャンし、失われたコミットを見つけます。そのコミットに対する識別子を記録しておいてください(1列目、2列目のどちらを使ってもかまいません)。その識別子を "ID" と呼ぶことにします。

リセットを行なってから余分な作業を行なっていなければ --hard you can do:

git reset --hard ID
git push -f origin master

もしリセット後に他の作業をしたのであれば、このようにブランチにチェリーピックで戻すことができます。

git cherry-pick ID
git push origin master