¿Cuál es el punto de agregar un signo de admiración antes de agregar git?

Estoy buscando el file de puntos para los alias de git aquí . ¿Por qué hay un signo de exclamación antes de git add el git add ? ¡Y mirando otros alias, bastantes usos ! , en el $alias_name$ = "!..." de $alias_name$ = "!..." . ¿Son los dos usos diferentes?

¡Busqué algunos usos de Bash ! y parece ser usado para get commands previos, pero este uso parece ser diferente. ¿Algunas ideas? ¡Gracias!

! no es antes de git add , es antes de toda la línea de command. Significa "ejecutar el command con un shell". Los alias de Git generalmente son sustituciones simples:

 [alias] ca = commit -a 

significa que el command git ca será interpretado por git como git commit -a .

Para trucos más complejos en alias, las personas usan commands y funciones de shell, y ! llama shell. Para el alias que señaló, significa que se ejecutará git ca

 git add -A && git commit -av 

en un caparazón.

Los '!' se usa para decir que el command que está entre las comillas dobles no es un command git. El command usará uno de los muchos ejecutables de línea de command instalados en su sistema.

De hecho, puedes llamar al ejecutable git, para que este alias 2 sea el mismo:

  st = "status" st = "!git status"