2013-03-06 211 views
14

最近幾天,當我試圖做一個git status或git pull時,我一直有這個問題。該存儲庫位於Bitbucket上。Git:索引文件打開失敗:「git status」權限被拒絕。託管在Bitbucket上

嘗試了幾件事情,使這項工作(有一些帖子與此相關的stackoverflow,但他們沒有工作)。

這裏是問題:

 
[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 

我仔細檢查了當地的權限,一切似乎要被罰款。我有權訪問所有文件。

注:

如果我使用「命令」一切看起來就像普通的工作,但是我沒有爲根目錄部署機器上的任何SSH憑證。這讓我認爲這是一個權限問題(如錯誤解釋),但是:它可能是什麼,如果我是所有文件的所有者,包括文件裏面的.git/

在此先感謝!

+0

您是如何從遠程獲取文件的? – AdamT 2013-03-06 19:32:56

+0

你是否克隆了遙控器? – AdamT 2013-03-06 19:33:18

+0

是的,我通過SSH做了一個克隆到遠程服務器 – demogar 2013-03-06 22:44:31

回答

18

通過運行git status得到了同樣的錯誤fatal: index file open failed: Permission denied,我查.git/index通過

$ ls -al .git/index 

出乎我的意料,這是

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

我不知道爲什麼&如何改變。反正,我改變後的

$ chmod 644 .git/index 

git status作品的許可回644

4

確保.git目錄及其文件/子目錄由您的用戶擁有和寫入。這聽起來像存儲庫或者以不同的用戶帳戶或以root用戶身份克隆(例如通過sudo)。

倉庫的遠程託管位置並不重要,git狀態只能訪問本地倉庫。

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 
相關問題