"bang"或"!"在git命令前的含义是什么?

15

从这段摘录中可以看出,在git命令之前有一个“!”。这是什么意思呢?

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

- https://dev59.com/r2ox5IYBdhLWcg3wzXel#8956546}

我理解别名以及这个命令本身的作用,但是不明白在git命令前面为什么要加上"!"。

2个回答

24

!表示将以下内容作为命令运行到shell中,所以在这种情况下,别名git commitx扩展为相当于运行git add . && git commit(这是一个非常糟糕的想法)。


1
感谢您快速而简洁的回答!我也同意这是一个不好的想法。再次感谢! - Joe Collins

16

!的一个重要方面未被接受答案涵盖的是,对于 shell 命令来说,工作目录被设置为工作副本的顶层。因此,git commitx 将暂存并提交工作副本中所有新文件和更改文件,而手动运行 git add . && git commit 则将暂存并提交当前目录中的所有新文件和更改文件。


有没有办法实现相同的Shell执行,但不改变工作目录到顶层? - Jarl
我不知道。 - Max Nanasy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接