使用Git管理私有仓库的权限问题及其困境

3
当我尝试将服务器上的目录发送到私有仓库中时,出现以下错误:
$:/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

请不要在权限问题出现时首先使用 sudo 命令。如果您希望能够以普通用户身份运行命令,则应找到并修复权限问题本身。最好的情况是,以 root 身份运行命令只会暂时掩盖问题;通常会创建更多的权限问题(在以 root 身份运行时创建的文件通常无法被您的普通用户写入)。 - Chris Johnsen
1个回答

7

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


挣扎了24小时,然后看到半神的答案。 - Tarun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接