Git Alias ​​Проблема - PullRequest
       16

Git Alias ​​Проблема

16 голосов
/ 26 октября 2010

Я пытался настроить некоторые псевдонимы git, добавив эти строки в мой ~/.gitconfig файл:

[alias]
  st = status
  ci = commit
  br = branch

И когда я иду для запуска этих команд в терминале: git st, я получаюследующая ошибка fatal: cannot exec 'git-st': Not a directory.Я не знаю, в чем проблема, и я посмотрел в Интернете и не могу найти, почему он это делает.Я использую Mac OS 10.6.4 с использованием Git 1.7.1.Кто-нибудь, пожалуйста, помогите мне.Если я не пойму, почему он это делает, я сойду с ума!Спасибо!

Ответы [ 5 ]

17 голосов
/ 06 ноября 2010

unutbu правильно указывает на проблему git-osx-installer 53 , которая гласит:

По сути, у меня был /root/bin в моем пути, и у меня не было разрешений для этого каталога.

Интересно, что это не было проблемой с git 1.6.3, но это было с 1.7.0 и 1.7.1.

A strace -f -eexecve git st 2>&1 | grep EACC может помочь определить, в каком каталоге возникла проблема:

[pid 6469] execve("/usr/games/bin/git-st", ["git-st"], [/* 72 vars */]) = -1 EACCES

(в данном случае /usr/games/bin/)

Другой способ найти путь с проблемой:

echo $PATH |tr ':' '\n' |xargs ls -ld

Один из моих недействительных элементов на самом деле является смонтированным каталогом NFS, к которому у меня нет прав доступа, потому что я не прошел аутентификацию через Kerberos на корпоративном сервере NFS.
Удаление этого элемента из PATH устраняет проблему, и теперь работает * 1029 (мой псевдоним для статуса).


PeterT упоминает в комментарии, что у вас может не быть strace доступных (как в Solaris или OsX , как подробно описано в " Эквивалент strace -feopen < command > на Mac os X"), в этом случае dtruss является хорошим эквивалентом.

dtruss -f -t execve git st 2>&1 | grep EACC
6 голосов
/ 14 августа 2012

У меня тоже была эта проблема, но с немного другой причиной:

В моем случае путь содержал запись, которая была файлом, а не каталогом. Разрешения на сам файл и его каталог были в порядке. Когда был загружен новый терминал, файл можно было запустить из любого места. Однако git выдал идентичное сообщение об ошибке.

Поэтому, помимо поиска папок на пути с неправильными разрешениями, я предлагаю всем, кто сталкивается с этой проблемой, также проверять, что путь указывает только на папки, а не на файлы.

0 голосов
/ 16 октября 2014

Git также имеет встроенную команду псевдонимов.

Пример псевдонима команд:

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.lola 'log --graph --decorate --pretty=oneline --abbrev-commit --all'
0 голосов
/ 10 марта 2014

У меня тоже была такая же проблема, и это была плохо отформатированная строка .bash_profile.

Когда я установил WP_CLI, он добавил следующую строку в мой .bash_profile

export PATH=/root/.wp-cli/bin:$PATH

Я должен был сделать небольшое изменение для этого. Я использую CentOs в этом отношении.

export PATH=$PATH:/root/.wp-cli/bin

Это исправило мою проблему.

0 голосов
/ 15 января 2014

Найдена такая же проблема в OSX после установки Foundation.

Неправильная строка в моем файле .bash_profile была неверным путем экспорта основы . Я не удалил / foundation в конце строки, поэтому он указывал на двоичный файл, а не на папку.

Просто исправил, перезагрузил Терминал и все снова заработало.

...