繁体   English   中英

在项目内包含git commit信息

[英]Include git commit information inside a project

我正在研究php项目。 是否可以将git集成到项目中,以将来自上一次提交的信息添加到footer

我没有使用构建框架

我会使用所谓的git hook来实现这一点。 挂钩实际上是在特定git动作上自动执行的脚本。 您可能会感兴趣的一个叫做git post commit hook ,它是一个脚本,在每次提交后都会自动执行。 以下是添加方法:

  1. 创建一个脚本.git/hooks/post-commit

     #!/bin/sh git log -1 --format=%cd --date=local > version.txt 
  2. 使它可执行:

      chmod +x .git/hooks/post-commit 

而已。 现在,在每次提交之后,您的version.txt都将使用上一次提交的信息进行更新。

这样做有多种选择,但我认为最好的选择是在构建过程中进行选择。

如果您正在使用诸如Jenkins,Bamboo或任何其他CI / CD系统之类的东西,则可以创建一个任务来检索git commit,并将其保存在应用程序可读的位置。 可能是:

  • 将其设置为配置文件的一部分
  • 将其设置为您可以阅读的环境变量
  • 将其保存在文件中,并为每个请求读取
  • ...

确实,选项无穷无尽,但这取决于您构建项目的方式以及部署方式。 如您所见,您不缺少选择!

如果您不使用构建系统,那么也许您应该使用一个构建系统!

不过,您仍然可以选择执行以下命令来获取最新的提交:

echo exec('git rev-parse --short HEAD');

这将为您提供简短的提交哈希。 我确实建议您使用其他选项之一。

实际上,在搜索了内容之后,我没有使用构建就发现了类似的内容

echo exec('git log -1 --format=%cd --date=local');

这将显示上次提交的时间和日期

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM