2011-07-14 55 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/