プロジェクトのクローンを作成しようとしましたが、常に失敗します。 gitリポジトリの整合性に問題があるようです。
また、フォークして(動作し)、クローンを作成してみました(同じ問題)。
$> git clone [email protected]:sinatra/sinatra.git
Cloning into 'sinatra'...
remote: Counting objects: 19910, done.
error: object 218b8c8019a785b8c08c1dd64beff68af63cc1f9: zeroPaddedFilemode: contains zero-padded file modes
fatal: Error in object
fatal: index-pack failed
私はそれを試したところ、うまくいきました。
devbox@ubuntu-server-xenial:~/code$ git --version
git version 2.7.4
devbox@ubuntu-server-xenial:~/code$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
devbox@ubuntu-server-xenial:~/code$ git clone [email protected]:sinatra/sinatra.git
Cloning into 'sinatra'...
Host key fingerprint is SHA256:n6E5SYUpJ7E1IGOCspRoThXkTxdCKGlwmARLviWbg68
+---[RSA 2048]----+
| =+o...+=o.. |
|o++... *o . |
|*.o. *o. |
|oo. ..o.= . |
|.+o. .. S = |
|*=+ . o = . |
|OE . . o |
| o . |
| |
+----[SHA256]-----+
remote: Counting objects: 19910, done.
remote: Total 19910 (delta 0), reused 0 (delta 0), pack-reused 19910
Receiving objects: 100% (19910/19910), 5.92 MiB | 0 bytes/s, done.
Resolving deltas: 100% (10750/10750), done.
Checking connectivity... done.
devbox@ubuntu-server-xenial:~/code$
どのバージョンのgit
を使用していますか?
macOSSierraではgit version 2.13.0
(もう一度試してみましたが、同じ問題です)
私の.gitconfig
には、次の設定があります。
[transfer]
fsckobjects = true
これをfalse
に変更すると、リポジトリのクローンを作成できます。 git fsck
すると、次の結果が得られます。
$> git fsck
Checking object directories: 100% (256/256), done.
warning in tree 218b8c8019a785b8c08c1dd64beff68af63cc1f9: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 496479ab009c76d3d5e5b5eb8f05e478555b730a: zeroPaddedFilemode: contains zero-padded file modes
warning in tree 6720ac897243912cf384731c42a6ed4005bc384c: zeroPaddedFilemode: contains zero-padded file modes
Checking objects: 100% (19910/19910), done.
メンテナの1人がこれを修正することに興味がある場合、おそらくこれにはいくつかのヒントが含まれています。
https://git.wiki.kernel.org/index.php/GitFaq#How_to_fix_a_broken_repository.3F
はい、それは私にとっても腐敗しているように見えます。 git
がデフォルトでfsckobjects
にならないのはなぜですか...
fsck my life
これはhttps://github.com/sinatra/sinatra/issues/532(2012 !)で最初に発生したようです。
このStackOverflowの回答の手順に従って修正することができました。 ただし、壊れたSHAはかなり古いため、これはリポジトリの履歴の大部分を書き換えることになります。
また、SHAが変更されたため、多数の署名付きタグを署名なしに変換する必要がありました。
更新されたリポジトリは次のとおりです: https :
私が取った手順は次のとおりです。
git init
実行しますgit fast-export --all --signed-tags=warn-strip | (cd ../new-sinatra && git fast-import)
野生でのこれの他の例:
最も参考になるコメント
fsck my life