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
работает нормально.