2011-07-14 63 views
12

我無法在使用git時在我的項目中提交更改。Git commit問題:無法附加到.git/

這裏是我的終端:

[email protected]:~/menu_operations$ git commit -m "initial commit" 
error: Unable to append to .git/logs/refs/heads/7.x-1.x: Permission denied 
fatal: cannot update HEAD ref 

menu_operations是我的項目的名稱。

我不知道我有什麼權限允許。 任何人都可以幫忙嗎?

回答

41

檢查用戶和.git/logs/refs/heads /的權限,也許你以root身份運行了某些東西。

說明:(?須藤)當你運行一些Git命令的根目錄中創建任何新的文件/目錄將被root擁有,並且在默認情況下[1]其他用戶將不會對這些文件的寫權限/目錄。

當你,以後,與倉庫的工作,事情可能出現工作,直到 root擁有你需要這是由根創建其實文件的時間,即

這應該修復它,至少在Linux上:

sudo chown -Rc $UID .git/ 

它也將告訴你,它改變了業主的任何文件。

[1]在一個健全的設置,至少

+0

感謝你們倆。你是對的。命令sudo chown幫了忙,現在沒事了。 Tomas Teicher –

+6

對於Mac用戶:'sudo chown -R $ UID .git /'。 –

+0

@manakor,但它不會「也顯示任何文件,它改變了所有者」,當然。你可以用'find找到它。 -not -uid $ UID -ls -exec chown $ UID {} +'。 – sehe

0

檢查用戶和.git/logs/refs/heads /的權限,也許你以root身份運行了某些東西。

0

只是想增加對那些Capistrano的部署,你應該用git的/目錄中在這裏工作

/var/www/rails/production/shared/git_cache/.git 

/var/www/rails/production/current/.git 

這假設你正在使用這些給定的目錄,並且你正在推動生產...但它應該讓你朝着正確的方向前進。

0

chown -R $(whoami)/usr/local.git應該這樣做。

-1

Linux命令:

  • 須藤CHOWN -Rc $ git的UID/
  • ID -u {} yourusername

和結果:的」 git的/打包 所有權發生變更-refs'從根到1000

將'.git/logs/HEAD'的所有權從根改爲1000

將'.git/logs/refs/heads/master'的所有權從根改爲1000

更改了所有權。GIT中/日誌/參/遙控器/來源/ HEAD '從根部到1000

改變所有權' 的.git /日誌/參/遙控器/來源/主 '從根到1000

的所有權改變'。 GIT中/對象/包/包-b905d78889aea64ca69a61c0efaa76ba95b08786.idx '從根部到1000

改變所有權' 的.git /對象/包/包-b905d78889aea64ca69a61c0efaa76ba95b08786.pack '從根部到1000

的所有權改變'。 git/objects/info/packs'from root to 1000

改變從根「的.git /信息/裁判」的所有權,以1000

0

使用

須藤喬敦 - R的youremailid的.git/