git aliases, вызывающий ошибку "Отказано в доступе"
Следующие команды
$ 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.:)