从这段摘录中可以看出,有一个“!”在git命令之前。有什么意义?
[alias]
commitx = !git add . && git commit
- https://stackoverflow.com/a/8956546/1354543
我理解别名和命令本身正在做什么,但不是“!”的意思。在git命令之前。
答案 0 :(得分:22)
!
表示“将以下命令作为命令发送到shell”,因此在这种情况下,别名git commitx
会扩展为等同于运行git add . && git commit
(这是一个可怕的糟糕主意)
答案 1 :(得分:15)
接受答案未涵盖的!
的一个重要方面是,对于shell命令,工作目录设置为工作副本的顶级。因此,git commitx
将暂存然后提交工作副本中的所有新文件和已更改文件,而手动运行git add . && git commit
将暂存,然后提交当前目录中的所有新文件和已更改文件。