catch 22具有私人回购的git权限

catch 22具有私人回购的git权限,git,ubuntu,permissions,controls,version,Git,Ubuntu,Permissions,Controls,Version,当我尝试使用github将目录从服务器发送到私有repos时,我得到了以下信息 $:/home/my_site/$ git push origin master Enter passphrase for key '/home/adamgamb/.ssh/id_rsa': error: unable to create directory for .git/refs/remotes/origin/master error: Cannot lock the ref 'refs/

当我尝试使用github将目录从服务器发送到私有repos时,我得到了以下信息

$:/home/my_site/$ git push origin master

   Enter passphrase for key '/home/adamgamb/.ssh/id_rsa': 
   error: unable to create directory for .git/refs/remotes/origin/master
   error: Cannot lock the ref 'refs/remotes/origin/master'.
   Everything up-to-date
目前,如果我尝试在不使用sudo的情况下使用git,我会收到此错误,因为无法访问文件,但是,如果我使用sudo,git
publickey
会被拒绝(它位于执行此操作的用户的~/.ssh中)

有人能解释一下如何避免这个问题吗

$: sudo git push origin master
  Permission denied (publickey).
  fatal: The remote end hung up unexpectedly

它抱怨无法创建的目录实际上位于您的主目录中,即~/.git/refs/remotes/origin/master。可能发生的情况是,您在sudo下运行git,以root身份创建了这些文件,但现在您无法访问它们。作为root用户,您可以chown-R adamgamb~adamgamb/.git,然后重试。

请不要使用sudo作为对权限问题的第一个响应。如果希望能够以普通用户的身份运行命令,请查找并修复权限问题本身。在最好的情况下,以root用户身份运行将暂时掩盖问题;通常它会产生更多的权限问题(以root身份运行时创建的文件通常不会被普通用户写入)