2012-05-17 5 views
14

Как вы можете видеть из этого отрывка, есть «!» перед командой git. В чем смысл?В чем смысл «взрыва» или «!» перед командой git?

[alias] 
commitx = !git add . && git commit 

- https://stackoverflow.com/a/8956546/1354543

Я понимаю псевдонимами и то, что команда сама делает, но не точка «!» перед командой git.

ответ

20

! означает «выполнить следующую команду в виде команд в оболочке», так что в этом случае псевдоним git commitx расширяется до эквивалента запуска git add . && git commit (который ужасный ужасная идея)

+0

Спасибо за быстрый и краткий ответ! Также согласитесь, что это плохая идея. Еще раз спасибо! –

14

Важным аспектом ! не охватываемый принятым ответом, заключается в том, что для команды оболочки рабочий каталог установлен на верхний уровень рабочей копии. Таким образом, git commitx будет затем выполнять все новые и измененные файлы в рабочей копии, а при запуске git add . && git commit вручную будет выполняться, а затем фиксировать все новые и измененные файлы в текущем каталоге.

+0

Есть ли в любом случае достижение одного и того же исполнения оболочки, но без изменения рабочего каталога на верхний уровень? – Jarl

+0

@Jarl Не знаю, что я знаю –