2014-09-28 71 views
1

下面是一個演示我的問題的簡單示例。如果我這樣做:在Git別名中使用反引號命令執行

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

它執行date --utc,並將結果放入提交消息中。

然而,當我別名它testcomit:

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

git testcommit不執行`date --utc`部分,它,而不是把它提交郵件中一字不差。

那麼,如何獲得這個別名來執行date --utc

+2

I * *覺得你可以用'混帳配置--global alias.testcommit「!混帳提交-m「$ (日期--utc)「''。訣竅是'!',它使整個別名成爲一個shell命令(因此在那裏是'git'),閱讀更多[here](http://git-scm.com/docs/git-config)。 ('$()'而不是反引號是不相關的,但你應該開始使用它)。但是你確實知道提交的時間是默認存儲的,所以沒有理由把它放在消息中? – Biffen 2014-09-28 10:45:42

+0

@Biffen謝謝,讓我試試看看它是否有效。我知道時間,這只是一個例子來證明問題。 – 2014-09-28 10:52:33

+0

@Biffen,太棒了!有效。請把它作爲答案,我會接受它。 – 2014-09-28 10:55:27

回答

7

the documentation

如果別名膨脹與感嘆號前綴,它會被當作外殼命令。

所以,你可以使用:

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

請注意,你必須把git在那裏,因爲你現在指定的是整個 shell命令。

$()而不是反引號是不相關的,但它是更好的,所以你應該開始使用它。)