2013-03-06 12 views
14

私はgit statusかgit pullのどちらかをしようとしているとき、この2〜3日間この問題を抱えてきました。リポジトリはBitbucketでホストされています。Git:インデックスファイルを開くことができませんでした: "git status"の権限が拒否されました。 Bitbucketでホストされています

この仕事をするためにいくつかのことを試してみました(stackoverflowでこれに関連する記事がありますが、機能しませんでした)。私は "gitのプル" を行う場合

 
[email protected]:/repo/$ git status 
fatal: index file open failed: Permission denied 
fatal: git status --porcelain failed 

:ここ

が問題である

 
[email protected]:/repo/$ git pull 
remote: Counting objects: 77, done. 
remote: Compressing objects: 100% (30/30), done. 
remote: Total 56 (delta 37), reused 41 (delta 22) 
error: insufficient permission for adding an object to repository database .git/objects 

fatal: failed to write object 
fatal: unpack-objects failed 

を私は二重のローカル権限をチェックし、すべてがうまくなるようです。私はすべてのファイルへのアクセス許可を持っています。

注:私は「sudoを」使用している場合

すべてがしかし、私はその配布先のマシン上でのルートのための任意のSSH資格を持っていない、通常のように動作するように見えます。しかし、それは私がgit/

内のファイルを含むすべてのファイルの所有者であれば、それは可能性があります(エラーが説明するように)権限を持つ問題だと思うようになります。

ありがとうございます!

+0

あなたはどのようにリモートからファイルを取得しましたか? – AdamT

+0

リモートをクローンしましたか? – AdamT

+0

はい、SSH経由でリモートサーバーにクローンを作成しました – demogar

答えて

18

が実行git statusで同じエラーfatal: index file open failed: Permission deniedを手に入れた、と私は私の驚きに

$ ls -al .git/index 

によって.git/indexをチェックし、それは私がそれを変更する理由&かさっぱりだが

---------- 1 Kjuly staff 768248 Sep 2 11:07 .git/index 

です。私が変更された後、とにかく、それは許可が

$ chmod 644 .git/index 

git status作品に戻っ644にあります。

4

.gitディレクトリとそのファイル/サブディレクトリが所有者で、書き込み可能であることを確認してください。これは、リポジトリが別のユーザーアカウントでクローンされたか、ルートユーザーとして(たとえば、sudoによって)複製されたようです。

リポジトリのリモートがどこにホストされているかは関係ありません。git statusはローカルリポジトリにのみアクセスします。

0

私は今日BitBucketで同じ問題を経験しました。ここで私のために働いた回避策です:

git remote set-url origin https://[email protected]/_my_/_repo_.git 
git pull 
git push 
git remote set-url origin [email protected]:_my_/_repo_.git 
関連する問題