我正在查看git别名here的dotfile。为什么在git add
之前有感叹号?在查看其他别名时,很多人使用!
的正式$alias_name$ = "!..."
。这两种用途有何不同?
我查找了!
的一些bash用法,它似乎用于获取以前的命令,但这种用法似乎有所不同。有任何想法吗?谢谢!
答案 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"