在OSX上执行Git命令需要使用sudo权限。

8

我已经从我的工作MBP切换回到了家里的MBP。工作用的那台电脑可以在不需要使用sudo命令的情况下运行git命令。但是在我家里的这台电脑上,我发现需要使用sudo命令才能运行git命令。

我希望能够在不用sudo的情况下运行git命令。

我查看了/usr/bin目录下的git命令,它们都有rwxr-xr-x (755)权限,并且属于root用户和wheel组。我想我可以将其权限改为rwxrwxrwx (777),但我想知道是否有更好的方法。我考虑将我的用户添加到wheel组中,但这会有其他副作用吗?


2
如果命令已经为全局设置了执行位(确实如此),那么更改群组不是解决方法。 - William Pursell
你可能想查看我的回答@Can't run “git” without sudo on OS X - benSooraj
2个回答

18

git 可执行文件的权限是正确的;没有理由需要更改它,或者更改您的用户组。

更有可能的情况是你的 Git checkout 权限存在问题。如果您意外地使用像 sudo git clone ssh://user@host/project.git 这样的命令检出了它,或者在仓库中执行某种操作会导致某些文件被 root 拥有,那么运行在您的帐户下的 git 将无法对这些文件进行写入。

最有可能的是,您需要执行 chown -R <user> myproject 命令,以使您的项目归属于您自己的用户账户,而不是 root。


3
谢谢,Brian。事实证明我使用git init创建的.git目录属于root。我使用chown进行了更改(当然需要sudo),现在可以无需sudo执行git命令。(耶) - NotoriousWebmaster
谢谢,就是这样了!我还要补充一点,你可以用“ls -al”命令检查所有者。 - Sonic Soul

4
如果您看到如下提示:

同意 Xcode/iOS 许可协议需要管理员权限,请通过 sudo 以 root 用户身份重新运行。

然后您运行了以下命令:
sudo git init .

更新完Xcode许可证后,只需删除初始化并重新初始化即可,无需使用sudo命令。

sudo rm -rf .git
git init .

这解决了我的问题。

2
我选择了这个解决方案,因为它是最快的,而且项目是新的,但也许你应该为那些可能会复制粘贴此命令而不知道他们将删除其早期文件版本的用户添加一些警告? - Var87

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