[解決済み] Git "破損したルースオブジェクト"
2022-02-19 02:58:11
質問
リモートからプルするたびに、圧縮に関する以下のエラーが表示されます。手動圧縮を実行しても、同じようになります。
$ git gc
error: Could not read 3813783126d41a3200b35b6681357c213352ab31
fatal: bad tree object 3813783126d41a3200b35b6681357c213352ab31
error: failed to run repack
どなたか、どうしたらいいかご存じですか?
cat-fileからはこのようになります。
$ git cat-file -t 3813783126d41a3200b35b6681357c213352ab31
error: unable to find 3813783126d41a3200b35b6681357c213352ab31
fatal: git cat-file 3813783126d41a3200b35b6681357c213352ab31: bad file
そして git fsck からは次のような結果が得られました (実際に関連性があるかどうかはわかりません)。
$ git fsck
error: inflate: data stream error (invalid distance too far back)
error: corrupt loose object '45ba4ceb93bc812ef20a6630bb27e9e0b33a012a'
fatal: loose object 45ba4ceb93bc812ef20a6630bb27e9e0b33a012a (stored in .git/objects/45/ba4ceb93bc812ef20a6630bb27e9e0b33a012a) is corrupted
どなたか解読していただけませんか?
解決方法は?
私も同じ問題がありました(原因は不明)。
この修正には、リポジトリの破損していないリモートコピーへのアクセスが必要であり、ローカルで作業しているコピーはそのまま維持されます。
しかし、欠点もあります。
- プッシュされなかったコミットの記録を失い、それらを再コミットしなければならなくなります。
- 隠し場所を失います。
修正
レポの親ディレクトリから以下のコマンドを実行します('foo'はプロジェクトフォルダの名前に置き換えてください)。
-
破損したディレクトリのバックアップを作成します。
cp -R foo foo-backup
-
リモートリポジトリの新しいクローンを新しいディレクトリに作成します。
git clone [email protected]:foo foo-newclone
-
破損した.gitサブディレクトリを削除します。
rm -rf foo/.git
-
新しくクローンした.gitサブディレクトリをfooに移動します。
mv foo-newclone/.git foo
-
一時的な新しいクローンの残りを削除します。
rm -rf foo-newclone
Windowsの場合、使用する必要があります。
-
copy
ではなくcp -R
-
rmdir /S
ではなくrm -rf
-
move
ではなくmv
これで foo は元の
.git
サブディレクトリを取り戻しましたが、ローカルでの変更はすべてそのまま残っています。
git status
,
commit
,
pull
,
push
などが再び正常に動作するようになりました。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み】Githubエンタープライズ - リモート。Git の操作でパスワード認証が利用できない
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
git revert 複数コミット
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。
-
[解決済み] Gitのエラー「object file ... is empty」はどうすれば直せますか?