在Git别名中使用反引号命令执行

Sae*_*ini 1 git msysgit backticks git-bash git-alias

这是一个演示我的问题的简单示例.如果我做:

git commit -m "`date --utc`"
Run Code Online (Sandbox Code Playgroud)

它执行date --utc,并将结果放在提交消息中.

但是,当我将它别名为testcomit时:

git config --global alias.testcommit 'commit -m "`date --utc`"'
Run Code Online (Sandbox Code Playgroud)

执行git testcommit不执行该`date --utc`部分,而是将其逐字地放在提交消息中.

那么,如何让这个别名执行date --utc

Bif*_*fen 7

文档:

如果别名扩展以感叹号为前缀,则将其视为shell命令.

所以你可以使用:

git config --global alias.testcommit '!git commit -m "$(date --utc)"'
Run Code Online (Sandbox Code Playgroud)

请注意,您必须放入git,因为您现在正在指定整个 shell命令.

($()而不是反引号是不相关的,但它更好,所以你应该开始使用它.)