Подтвердить что ты не робот

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. Кто-нибудь, пожалуйста, помогите мне. Если я не пойму, почему это так, я сойду с ума! Спасибо!

4b9b3361

Ответ 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'