2011-10-06 4 views
10

を持っている:壊れたgitリポジトリを復元するには?私は私のgitリポジトリ上で任意のコマンドを入力したときにgitのコミット後にフリーズ私のラップトップのハードリセットした後、私は次のエラーを

$ git status 
fatal: failed to read object de02e6d5cd7823ea788429a33583bede09221163: Invalid argument 

は私のgitリポジトリを回復するためにとにかくはありますか?

私は2つの以下の質問から解決策を見つけることができませんでした:

編集:私は私のgitリポジトリの破損や任意の解決策の原因を見つけませんでしたそれを復元するには...私は最終的に私のSVNリポジトリから新しいクローンを開始しました!

+2

ここでの最初の手順は、ファイルシステムを確認することです。そのエラーは奇妙です。あなたは 'fsck'や、あなたのOSには何があったのですか?あなたが何かをする前に**バックアップ**をしてください。 – Mat

+0

ほぼすべての回答は、一部の壊れにくい遠隔地点から単純に再クローンできると仮定しています。ここに問題があります。**あなたが**起源であり、あなたが堕落していたら?右。ですから、 'git-repair'は' git fsck'を実行し、発生した問題を解決するためにかなり努力するプログラムです。 https://git-repair.branchable.com/これはかなり能力があるようですが、バックアップからオブジェクトをコピーする必要があるかもしれませんが(バックアップできますか?)、それができるものを救済し、あなたに本当の仕事を残し、多くの自動化可能な作業ではなく、多くの時間を費やします。いいえ所属など –

答えて

2

私にとっては、上記の回答はどれもうまくいきませんでした。私はちょうど私のgit repoを再クローン化し、すべてがうまくいった。クローンを作成する前に、変更されたすべてのファイルを開き、プルした後にファイルを上書きしました。

これは、あなたが頻繁にコミットする必要がある理由です:)。

1

最近githubやbitbucketのような場所にリポジトリをプッシュしましたか?別のクローンを取得し、オブジェクトディレクトリをコピーすることができます。

そうでない場合:

はどのように多くのこれらの実行の参照:REFLOGで

git fsck 
git branch -a 
git branch -a | xargs -n 1 git log -1 
git reflog 

、あなたは成功したからログを行うことができるものの一つ参照してください。うまくいけば、あなたの最新コミットは壊れているか、その1つは木です。

希望します。

+1

確かに私は新しいクローンを開始することができます、うまくいけば私は私のsvnトランクから遠すぎていない(私の地元のレポはgit-svnクローンです)。しかし、私は、このような問題が回復できるかどうか、そしてそれを将来再現するのを避けるための起源は何かを考えていました。 – greydet

関連する問題