【问题标题】:Using backtick command execution in Git alias在 Git 别名中使用反引号命令执行
【发布时间】:2014-11-22 21:49:21
【问题描述】:

这是一个简单的例子来演示我的问题。如果我这样做:

git commit -m "`date --utc`"

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

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

git config --global alias.testcommit 'commit -m "`date --utc`"'

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

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

【问题讨论】:

  • 认为你可以使用git config --global alias.testcommit '!git commit -m "$(date --utc)"'。诀窍是!,它使整个别名成为一个shell命令(因此那里有git),阅读更多here。 ($() 而不是反引号是无关的,但你应该开始使用它。)但是你知道提交的时间是默认存储的,所以没有理由把它放在消息中?
  • @Biffen 谢谢让我试试看它是否有效。我知道时间,这只是说明问题的一个例子。
  • @Biffen,太棒了!有效。请把它作为答案,我会接受的。

标签: git msysgit git-bash backticks git-alias


【解决方案1】:

来自the documentation

如果别名扩展以感叹号为前缀,则会被视为shell命令。

所以你可以使用:

git config --global alias.testcommit '!git commit -m "$(date --utc)"'

请注意,您必须在其中输入git,因为您现在指定的是 whole shell 命令。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 2012-12-16
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2011-12-10
    相关资源
    最近更新 更多