3

共有 git リポジトリがありますが、プッシュすると「リポジトリ データベース ./objects にオブジェクトを追加するための権限が不十分です」というエラー メッセージが表示されるという問題がありました。

私はすでにここで解決策について読んでいます: GitHubへのプッシュエラー - リポジトリデータベースにオブジェクトを追加するための不十分な権限とここ: gitプッシュの権限を尊重しますか? 他の解決策や同様の問題をウェブで検索しましたが、成功しませんでした。リポジトリは sharedRepository = 0660 で構成されていませんでしたが、現在は構成されています。「group」、「true」、「all」も試しましたが、問題は解決しませんでした。

リモート リポジトリに git push を実行すると、「-r--r-----」のアクセス権を持つファイルが作成されます。たとえば、ls -l が出力するファイル ./objects/0f/87b18a145ebd187cc1e5bed9f6ea90901bc207 の場合:

-r--r----- 1 rcosta project 166 2012-07-04 20:25 87b18a145ebd187cc1e5bed9f6ea90901bc207

git構成は次のとおりです。

[core]
    repositoryformatversion = 0
    filemode = true
    bare = true
    sharedRepository = 0660

を使用してファイルのアクセス許可をリセットしましchmod -R g+ws *た。プロジェクトにアクセスする他のすべてのユーザーに対してもこれを行いました。私はシステムの管理者ではないので、それぞれがログインしてコマンドを実行しました。すべてのユーザーがprojectグループに属します。

SSH経由でリポジトリにアクセスします。コマンドラインを実行することで、各メンバーのリポジトリが複製されました。

git clone username@uni-server.de:/path/to/projectname.git

問題を解決する方法がわかりません。すべてのファイルは、「プロジェクト」グループのすべてのユーザーに対して読み取りと書き込みのアクセス許可を持っている必要があります。これにより、誰もが任意のファイルを変更およびプッシュできます。

助けてくれてありがとう!
ロバート。

4

1 に答える 1

0

リモートリポジトリで次のコマンドを実行します。

    git config core.filemode false

これにより、git が所有権/権限の変更を識別できなくなります。あなたが提供した構成でfilemodeがtrueに設定されていることがわかります。これは、ファイルがリモートにプッシュされると、アクセス許可もプッシュされることを意味します。

私は少なくともそこから始めます。

于 2012-07-04T20:58:49.260 に答える