git 别名导致“权限被拒绝”错误

git 别名导致“权限被拒绝”错误

以下命令

$ git co -b newbranch
$ git co oldbranch

导致“致命:无法执行‘git-co’:权限被拒绝”错误。

在同一时间,

$ git checkout -b newbranch
$ git checkout oldbranch

$ sudo git co -b newbranch
$ sudo git co oldbranch

按预期工作。.git 文件夹的所有权权限设置为拥有主文件夹的用户,0755/0644 是 .git 文件夹/子文件夹/文件的模式。

.gitconfig别名在主文件夹中定义:

[alias]
co = checkout

git config -l对于 root 用户或非特权用户来说,输出没有区别。

我错过了什么?

Gentoo 3.0.6/git 1.7.3.4

答案1

问题已解决,请参见https://stackoverflow.com/questions/7997700/git-aliases-causing-permission-denied-error

在 git 运行别名之前,它会检查$PATH。如果目录不存在或缺少权限,git 会生成"fatal: cannot exec 'git-co': Permission denied"

git 邮件列表中的好心人还提醒我一个工具,它strace可以帮助找到返回 EACCES 的条目,如下所示:strace -f -e execve git foobar

此荣誉归功于 git 邮件列表的 Jeff King。:)

相关内容