Git Проблема с псевдонимами
Я пытался настроить некоторые псевдонимы 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. Кто-нибудь, пожалуйста, помогите мне. Если я не пойму, почему это так, я сойду с ума! Спасибо!
Ответы
Ответ 1
unutbu правильно указал на git -osx-installer issue 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
устраняет проблему и теперь <<26 → (мой псевдоним для статуса).
PeterT упоминает в комментарии, что у вас может не быть доступного strace
(например, в Solaris или OsX, как описано в разделе Эквивалент strace -feopen < command >
на mac os X "), и в этом случае dtruss
является хорошим эквивалентом.
dtruss -f -t execve git st 2>&1 | grep EACC
Ответ 2
У меня тоже была эта проблема, но с немного другой причиной:
В моем случае путь содержал запись, которая была файлом, а не каталогом. Права на сам файл и его каталог были в порядке. Когда новый терминал был загружен, файл можно запустить из любого места. Однако git дал идентичное сообщение об ошибке.
Так же, как и поиск папок на пути с неправильными разрешениями, я предлагаю, чтобы кто-нибудь еще с этой проблемой также проверял, что путь указывает только на папки, а не на файлы.
Ответ 3
Обнаружена та же проблема в OSX после установки Foundation.
Строка оскорбления в моем .bash_profile была неправильным шаблоном экспорта основ. Я не удалял/основание в конце строки, поэтому он указывал на двоичный файл, а не на папку.
Просто исправил его, перезагрузил терминал и все снова работало.
Ответ 4
У меня тоже была проблема, и это была сильно отформатированная строка .bash_profile.
Когда я установил WP_CLI, он добавил следующую строку в мой .bash_profile
export PATH=/root/.wp-cli/bin:$PATH
Мне пришлось немного изменить ситуацию. Я использую CentOs, если на то пошло.
export PATH=$PATH:/root/.wp-cli/bin
Это исправило мою проблему.
Ответ 5
Git также имеет встроенную команду alias.
Примеры псевдонимов:
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'