如何从Ruby on Rails应用程序中检索当前的Git提交版本?
想要显示Git版本(或者最后6个字母左右)作为App版本。
答案 0 :(得分:18)
像@meagar所说,使用反引号从你的应用程序中执行shell命令,但你可能会发现这两个命令更有用:
完整哈希:
git rev-parse HEAD
哈希的前7个字符:
git rev-parse --short HEAD
答案 1 :(得分:10)
您可以在脚本中调用git
命令:
commit = `git show --pretty=%H`
puts commit
根据您的环境,您可能希望使用git二进制文件的完整路径,并可能通过环境变量或--git-dir
指定GIT_DIR。
答案 2 :(得分:3)
更强大的解决方案是git show --pretty=%H -q
。 -q
flag使输出静音。
为了删除作为输出一部分的换行符,可以使用chomp。例如:system('git show --pretty=%H -q').chomp
当提交不是合并提交时,selected answer有可能实际返回差异。在git版本2.16.2.windows.1。上验证
答案 3 :(得分:1)
我认为你想在你的HTML中包含app版本?前提条件是您以默认方式使用Capistrano部署您的仓库(您正在上载仓库,而不是发送存档文件)。
您可以将一些代码添加到Rails初始化程序中outlined here。该方法将从上次提交中获取SHA1,并使其可用作环境变量。
另一种方法是让Capistrano任务在公共目录中生成一个静态文件,其中包含提交SHA。您可以在此文件中包含似乎有用的其他信息。