在git add之前添加感叹号有什么意义?

时间:2017-08-22 21:00:41

标签: git bash

我正在查看git别名here的dotfile。为什么在git add之前有感叹号?在查看其他别名时,很多人使用!的正式$alias_name$ = "!..."。这两种用途有何不同?

我查找了!的一些bash用法,它似乎用于获取以前的命令,但这种用法似乎有所不同。有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

!不在git add之前,而是在整个命令行之前。它意味着"用shell运行命令"。 Git别名通常是简单的替换:

[alias]
ca = commit -a

表示命令git ca将被git解释为git commit -a

对于别名中更复杂的技巧,人们使用shell命令和函数,!调用shell。对于您指向的别名,意味着git ca将执行

git add -A && git commit -av

在一个shell中。

答案 1 :(得分:1)

'!'用于告诉双引号之间的命令不是git命令。 该命令将使用系统上安装的许多命令行可执行文件之一。

实际上,您可以调用git可执行文件,因此这2个别名是相同的:

 st = "status" 

 st = "!git status"