从Rails应用程序中获取当前的Git提交版本?

Car*_*ole 12 git ruby-on-rails-3 ruby-on-rails-3.1

如何从Ruby on Rails应用程序中检索当前的Git提交版本?

想要显示Git版本(或者最后6个字母左右)作为App版本.

Pat*_*ner 18

就像@meagar所说,使用反引号从你的应用程序中执行shell命令,但你可能会发现这两个命令更有用:

完整哈希:

git rev-parse HEAD
Run Code Online (Sandbox Code Playgroud)

哈希的前7个字符:

git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)

  • 我使用了`commit = \`git rev-parse HEAD \ .chomp`来删除尾随的换行符 (2认同)

mea*_*gar 12

您可以git在脚本中调用该命令:

commit = `git show --pretty=%H`
puts commit
Run Code Online (Sandbox Code Playgroud)

根据您的环境,您可能希望使用git二进制文件的完整路径,并可能通过环境变量或指定GIT_DIR --git-dir.


che*_*ion 5

更强大的解决方案是git show --pretty=%H -q。该-q标志使输出安静。

为了删除输出中的换行符,您可以使用 chomp。例如:system('git show --pretty=%H -q').chomp

当提交不是合并提交时,所选答案有可能实际返回差异。在 git 版本 2.16.2.windows.1 上验证。