Git alias не делает то же самое, что команда aliased

Я все еще относительно новичок в Git, так что, возможно, я делаю что-то глупое, но у меня странная проблема...

Я определил stage псевдоним для add --allпотому что я считаю это короче и более понятным:

D:\MyProject [master +0 ~1 -1]> git config alias.stage "add --all"
D:\MyProject [master +0 ~1 -1]> git config alias.stage
add --all

Но когда я бегу git stage ., он ведет себя так, как будто --all опция была опущена:

D:\MyProject [master +0 ~1 -1]> git stage .
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'MyProject.Tests/AssertExtensions.cs' that are
removed from your working tree are ignored with this version of Git.

* 'git add --ignore-removal <pathspec>', which is the current default,
  ignores paths you removed from your working tree.

* 'git add --all <pathspec>' will let you also record the removals.

Run 'git status' to check the paths you removed from your working tree.

D:\MyProject [master +0 ~1 -0 | +0 ~0 -1]> 

Тем не менее, работает git add --all . дает ожидаемый результат.

Что может быть причиной этого, и как я могу это исправить?

(Я использую msysgit и Posh -Git на Windows)


ОБНОВЛЕНИЕ: если я переименую псевдоним вstg работает нормально!! Я только что понял, что уже есть stage команда в Git, и это синоним add... так что я не могу отменить это.

1 ответ

Решение

Git уже имеет встроенный stage команда, и это синоним add... И, видимо, невозможно переопределить встроенную команду псевдонимом. Если я переименую псевдоним в stgработает нормально.

Другие вопросы по тегам