13

git v1.7.1 を実行しており、gitweb が構成されています。私たちは管理にも gitolite を使用していますが、それがこの問題と密接に関係しているとは思いません。時々、Apache ログに次のようなエラーが表示されます。

missing object 0000000000000000000000000000000000000000 for refs/heads/...

最後の省略記号は通常、ブランチ名です。ゼロの文字列は SHA1 値であると考えています。明らかに、すべてゼロは SHA1 値ではありません。この値がどこから来ているのか、私には明らかではありませんか?

サーバーで git fsck を実行しましたが、問題は報告されませんでしたが、git gc は問題を解決します。また、このリポジトリ (およびそのブランチ) に正常にプルおよびプッシュできます。影響を受けるのは gitweb だけです。

ここにクローズドな質問があるため、他の人がこの問題を見たことを知っています :

追加情報

この問題は、gitolite-admin リポジトリで確認されています。gitolite-admin リポジトリにはブランチがないため、これはブランチにはありませんでした。

4

6 に答える 6

4

このエラーは、リモートのデフォルト ブランチが変更され、以前のデフォルト ブランチが削除された後に発生しました。私のローカルリポジトリには、削除されたブランチへの参照がまだありました

.git\refs\remotes\origin\HEAD

新しいデフォルトのリモートを参照するようにこれを更新しただけです。

于 2014-10-28T19:55:00.693 に答える
2

git-daemon を実行しているユーザーの umask 値を確認します。022 に設定すると役立つ場合があります (「man umask」を参照)。

于 2012-03-27T09:13:35.877 に答える
1

これは、コミットのないブランチのデフォルトです。新しいブランチをプッシュすると、出力00000->ef357などが表示されます。

大文字と小文字を区別するものが原因である可能性もあります。

于 2011-05-25T22:13:34.097 に答える
1

これは、リポジトリが更新され、Apache のアクセス許可が正しく設定されていないときに発生します。

パーミッションを修正するために、各コミットの後にスクリプト フックを実行するように設定しました (手順はこちらhttp://sitaramc.github.com/gitolite/hooks.html )。git グループに Apache を追加したので、Apache が実行する gitweb cgi ですべてのファイルを読み取れるようにする必要があります。これを解決するために suexec を使用することを検討しています。

于 2012-03-24T20:22:06.133 に答える