破損したGitオブジェクトファイルの対処法は?
質問
クォータに近い状態でGit pullを行い、その結果(だと思う)、破損したファイルができてしまいました。
$ git pull
walk dffbfa18916a9db95ef8fafc6d7d769c29a445aa
fatal: object d4a0e7599494bfee2b5351113895b43c351496b3 is corrupted
$ git fsck --full
bad sha1 file: .git/objects/66/b55c76947b1d38983e0944f1e6388c86f07a1b.temp
fatal: object d4a0e7599494bfee2b5351113895b43c351496b3 is corrupted
$ git cat-file -t d4a0e7599494bfee2b5351113895b43c351496b3
error: unable to find d4a0e7599494bfee2b5351113895b43c351496b3
fatal: git cat-file d4a0e7599494bfee2b5351113895b43c351496b3: bad file
この破損を解決するにはどうしたらよいでしょうか?
.git/objects/66/b55c76947b1d38983e0944f1e6388c86f07a1b.temp はゼロバイトでした。これを削除しても私の問題(同じエラー)は何も解決しませんでした。
どのように解決するのですか?
一般に、破損したオブジェクトを修正するのはかなり難しい場合があります。しかしこの場合、問題は転送の失敗、つまりオブジェクトがリモートリポジトリにあることだと確信しています。したがって、私たちのコピーを安全に削除し、今度は正しくリモートからそれを取得するようにgitに任せることができるはずです。
サイズがゼロの一時的なオブジェクトファイルは、明らかにただ削除することができます。それは私たちにとって何の役にも立ちません。それを参照している破損したオブジェクトは
d4a0e75...
が本当の問題です。それは
.git/objects/d4/a0e75...
. 上で言ったように、削除しても大丈夫そうですが、念のため、まずバックアップをとっておきましょう。
この時点で、新しい
git pull
は成功するはずです。
...最初の場所で成功するつもりだったと仮定して。この場合、ローカルでの変更がマージの試行を妨げたようなので
stash
,
pull
,
stash pop
が順番に並んでいました。これはどのようなマージでも起こりうることで、破損したオブジェクトとは何の関係もありませんでしたが。(インデックスのクリーンアップが必要で、その過程でスタッシュがそれを行ったのでなければ...ですが、私はそう信じていません)。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Gitのエラー「object file ... is empty」はどうすれば直せますか?
-
undefinedGit Git がファイルをコードクラウドにプッシュする際に報告されるエラーを解決します: ! [拒否] master -> master (最初にフェッチ)
-
git pull reports エラー: :cannot open .git/FETCH_HEAD:Permission denied (.git/FETCH_HEADを開くことができません。
-
git push は最新の解決策を提供します。
-
git push issues
-
[解決済み] シングルブランチクローンを「元に戻す」方法は?
-
[解決済み] 単一ファイルのマージをやり直す
-
[解決済み] IntelliJのShelveとGit stashの違いは何ですか?
-
[解決済み] Git git reset」後にコミットメッセージを再利用/保持するには?
-
[解決済み] GitHubのウェブサイト上でディレクトリやフォルダの名前を変更するには?