Следующие команды

$ 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 /subfolder /files.

Псевдонимы определены в .gitconfig домашней папки:

[alias]
co = checkout

Нет разницы в выводе git config -l для пользователя root или непривилегированного пользователя.

Что мне не хватает?

Gentoo 3.0.6 / git 1.7.3.4

1 ответ1

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. :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .