15

正如您从这段摘录中看到的那样,有一个“!” 在 git 命令之前。重点是什么?

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

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

我了解别名以及命令本身在做什么,但不是“!”的重点 在 git 命令之前。

4

2 回答 2

23

意思是“将!以下命令作为 shell 的命令运行”,所以在这种情况下,别名git commitx扩展为相当于运行git add . && git commit(这是一个可怕的可怕想法)

于 2012-05-17T18:37:03.840 回答
16

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

于 2012-08-03T20:15:49.097 回答