在我的 Ubuntu 17.10 安装中,某些 git 命令需要 sudo 权限才能正常运行(如果没有 sudo,它们会立即返回并且不打印任何输出),而其他命令则不需要。我电脑上每个 git 存储库都存在同样的问题,因此它似乎与任何特定存储库中的权限无关。这些 git 命令要求sudo:
- 差异
- 日志
- 展示
那些确实不是需要 sudo:
- 添加
- 犯罪
- 地位
- 藏
- 分支
- 查看
我完全被难住了,尤其是被允许/不允许的命令的模式难住了。有什么解决方案/建议可以进一步调试吗?
编辑:问题在新存储库中仍然存在。文件夹的权限(来自ls -la
):
共 28 drwxr-xr-x 3 morten morten 4096 六月 5 20:52 。 drwxrwxr-x 33 morten morten 4096 六月 5 20:50 .. drwxr-xr-x 8 morten morten 4096 六月 5 20:53 .git -rw-r--r-- 1 morten morten 0 六月 5 20:52 test.txt
答案1
您的 .git 中的某些对象的文件所有权是否混乱?您可以尝试更改所有权,然后在不使用 sudo 的情况下再次尝试 git 命令。
sudo chown -R morten:morten .git
还要检查你的 .git/config 和 ~/.gitconfig 以确保您没有为 diff、log 和 show 设置需要 sudo 的东西。