くだらない!約1週間前、リポジトリをクリーンアップしようとしているときに、いくつかのコミットをリベースしていたのですが、実際には完了していなかったようです。今日、1週間後といくつかのコミットの後、今日からいくつかのコミットを並べ替えるためにリベースに行きました。
万が一に備えて私のレポをコピーするための手がかりだったはずです。しかし、私はしませんでした...代わりに私は走りましたgit rebase --abort
は、まさにその時に鳴りました。まあ、それは正しくありませんでした。 1週間前からリベースを中止し、マスターのHEADを古いものにリセットしました。ダミー!
他にもかなり最近のブランチがいくつかあり、リモートに何度かプッシュしましたが、最新の変更が永久に消えてしまったようです。変更を回復する方法があるかどうかを知るのに適切なレベルのgit-fuを持っていません。
私はねじ込まれていますか?
[〜#〜] edit [〜#〜]-すごい!みんなありがとう! git reflog
すごい!私は完全に回復しました...教訓を学びました。 Tchalvakの回答をマークすると、最初に投稿したことが承認されました。
小切手 git reflog
。ほとんどすべての場合、これらのコミットハッシュを参照として使用して、時間を遡ることができます。
私はまた、何が機能するかを確認するための予備テストを行う場所としてgit repoディレクトリを物理的に他の場所にコピーします。こうすることで、追跡されていないファイルを失うことなく、または物事をあなたが望む状態にすることなく、あなたが望むものをいじることができますcan 'tから戻ってきます。
git reflog
を使用して、最新のコミット(リベース--abort後に消えた)のSHA1を取得できるはずです。
その後、現在のブランチをそれらのSHA1にリセットできます
# Suppose the old commit was HEAD@{2} in the ref log
git reset --hard HEAD@{2}
「 Undoing a git reset --hard HEAD~1
」のようなものです。
リカバリの他の例については、「 Git を使用して失われたコミットをリカバリするためのガイド」も参照してください。