回答

5

假設你使用寶石settingslogic的應用程序設置,把這個在您的初始化:

git_log = `git log -1 --pretty="format:%H %ci"` 
if git_log =~ /^([\d\w]+?)\s(.+)$/ 
    Settings[:git_revision] = $1 
    Settings[:git_update] = $2.strip 
end 

您將有最後的git的承諾SHA在Settings.git_revisionSettings.git_update提交日期。

另外,你可以得到最後的標籤:

git_tag = `git describe --tags --abbrev=0` 
Settings[:git_tag] = git_tag.strip if git_tag 

這將在Settings.git_tag可用。

更新:

我發佈了一個小紅寶石寶石git-revision。有了它,你可以簡單地做:

"commit: #{Git::Revision.commit} date: #{Git::Revision.date}" 
0

至於可能的解決方案,你可以看到在與git smudge|clean filters(通用)解決方案(讀「關鍵字擴展」部分)