Резюме: текущий рабочий каталог команд, выполняемых через псевдонимы git, неверен.git aliases работают в неправильном каталоге
Самый простой способ продемонстрировать это, чтобы иметь GIT псевдоним следующим образом:
[alias]
pwd = !pwd
Так git pwd
просто запустив команду Баш pwd
. Можно было бы подумать, что выходы двух команд будут одинаковыми. Теперь, давайте попробовать это несколько раз:
$ cd ~
$ pwd && git pwd
/home/limpchimp
/home/limpchimp # great!
$ mkdir foo && cd foo && git init
Initialized empty Git repository in /home/limpchimp/foo/.git/
$ pwd && git pwd
/home/limpchimp/foo
/home/limpchimp/foo # great!
$ mkdir bar && cd bar
$ pwd && git pwd
/home/limpchimp/foo/bar
/home/limpchimp/foo # uuhhhhhhhh...?
Кажется, что мерзавец изменяет текущий рабочий каталог будет первый родительский каталог, который имеет папку .git
(если таковая существует). Это очень проблематично; он закручивает определенные сценарии, которые я написал, которые предназначены для работы в определенном каталоге и не позволяют мне использовать определенные вещи в качестве псевдонимов git. Есть ли способ обойти это? Как я могу это исправить?
Возможный дубликат [Почему работает команда, как мерзавец псевдоним дает разные результаты?] (HTTP: // StackOverflow .com/вопросы/8832799/почему-это-обкатка команды-как-ГИТ-псевдоним дает-разные-результаты) –