2011-02-22 128 views
0

我正致力於讓我的post-commit hook將文件更改爲具有提交編號,以便我的應用程序可以在錯誤處理中使用它。Git Post Commit Hook獲取提交編號

我能夠構建perl腳本來更改文件,但我想知道如何從掛鉤獲取提交ID。目前我鉤看起來是這樣的:

#!/bin/sh 
# 
# An example hook script that is called after a successful 
# commit is made. 
# 
# To enable this hook, rename this file to "post-commit". 

#: Nothing 
perl -pi -e 's/[A-Za-z0-9+]$/commit-number/' ../../config/commit.git 

我想提交數是某種變量保持提交ID。

編輯:我想到git rev-parse HEAD將生成HEAD提交,這是我需要的,但我不知道如何在命令中使用它。

回答

3

您可以使用命令的輸出作爲字符串$(...)或反引號`...`。因此,你的腳本可能會是這樣的:

perl -pi -e 's/[A-Za-z0-9+]$/'$(git rev-parse HEAD)/ ../../config/commit.git 

perl -pi -e 's/[A-Za-z0-9+]$/'` git rev-parse HEAD `/ ../../config/commit.git 

(我更喜歡第一個,因爲它更好的巢,是更具可讀性和它在Stackexchange更好的分型。)

順便問一下,你確定你的正則表達式是正確的嗎?現在,它將替換最後一個字符(如果它是字母數字字符或+)和最後一個提交ID。也許+應該在]之後? (如果你只想匹配git-commit-IDs,那麼你可以使用s/[a-f0-9]+/ - 沒有大寫,並且在f之後沒有任何內容。)

+0

反引號是不可鍵入的? `是反面的,對吧? – eckes 2011-02-22 20:10:44