从 PHP 读取 Git 提交消息

2024-04-18

我正在寻找一种使用 PHP 读取 Git 提交消息的方法。我怀疑我需要使用 Git hook,但我以前从未使用过它们,所以我需要一个push朝着正确的方向。具体来说,我想实现以下流程:

  • 每次提交后都会自动执行 PHP 脚本
  • 该脚本捕获 Git 用户名、提交时间和提交内容

如果可能的话,我想坚持使用纯 PHP。如果您可以指出一些教程或参考资料,那将是一个巨大的帮助。


要获取提交哈希,您可以使用

git rev-parse --verify HEAD 2> /dev/null

从 php 内部:

exec('git rev-parse --verify HEAD 2> /dev/null', $output);
$hash = $output[0];

您可以通过以下方式获取提交消息、作者和时间(不过,如果它作为提交后挂钩的一部分运行,时间将只是“现在”):

exec("git show $hash", $output);

如果不是很明显,那么无论您使用 php 做什么,都只是对 cli 上使用 git 所做的事情进行包装 - 即任何“我怎样才能用 php 中的 git 做 x”只是exec('the git answer', $output)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 PHP 读取 Git 提交消息 的相关文章

  • 是否可以将密码以纯文本形式存储在 php 变量或 php 常量中?

    根据问题 在 php 页面上存储密码是否安全 例如 password pa w0rd 如果用户看不到它 那就安全了 对吗 编辑 确实有人建议使用hash 但是数据库服务器连接密码会有问题不是吗 简短的回答是否定的 而且要看情况 以纯文本形式
  • 检查一个类是否是 Laravel 5 中的 Model

    我在 Laravel 5 2 中有这段代码 用于检查给定的数据库表名称 what 是否有自己的 Model public function manage what model Str studly Str singular what if
  • 使用 PHP 将列标题添加到 CSV 文件

    我正在尝试将 php mysql 生成的表转换为可下载的 csv 文件 当用户输入搜索参数时 将调用 mysql 表并将结果作为表返回 我使用了该线程中提供的解决方案 效果非常好 在 PHP 中为用户创建 CSV 文件 https stac
  • 高级自定义字段 – 具有多个输入的自定义字段类型

    我正在尝试为 ACF 创建一个新的字段类型 其中包含多个输入或存储值数组 原因是我希望为一组输入字段提供一些交互性和自定义布局 我按照这个教程http www advancedcustomfields com resources tutor
  • 为什么 SwiftMailer 发送两封电子邮件?

    我通过 PHP 的 SwiftMailer 库发送电子邮件 我有这个 PHP 代码 用于从 1 个发件人向 1 个电子邮件收件人发送 1 封电子邮件 这是代码 email some email recipient sendEmail sen
  • 如何使用开发分支中的一行命令更新本地 master 并重新设置其基准?

    假设我正在一个名为dev那就是跟踪master 如果我想更新我的主分支 我需要经常运行这一系列命令 git checkout master git pull git checkout dev git rebase i master 当我在
  • 为什么会导致合并冲突?

    这是我的 git 存储库的初始快照 在树枝上master file m1包含 L1 在树枝上dev file m1包含 L1 L2 如果我尝试合并dev from master 这会导致冲突 git checkout master Swit
  • Ubuntu 18.04:laravel/framework v6.9.0 需要 ext-mbstring * -> 您的系统中缺少请求的 PHP 扩展 mbstring

    在有人将其记下来进行复制之前 我检查了其他页面 但它们没有帮助 我正在尝试在 PHP 7 2 上安装 Laravel 6 的软件包 我也尝试过 PHP 7 4 不幸的是 我收到以下错误 laravel framework v6 9 0 re
  • 客户端和服务器的 Git 分支结构

    对于我的一门计算机科学课程 我和一个小组正在使用客户端 服务器架构编写一个应用程序 我很好奇在 Git 存储库中组织项目的最佳实践是什么 我的意思是 我们是否应该像这样构建目录 ProjectDir Clients Client1 file
  • 比较 PHP 和 NodeJS 之间的 BCrypt 哈希值

    对于我正在开发的应用程序 nodejs 需要验证 PHP 创建的哈希值 反之亦然 问题是 PHP 中生成的哈希值 通过 Laravel 的Hash类 它只使用 PHP 的password hash函数 在 Node js 中测试时返回 fa
  • PHP 删除 JavaScript

    我正在尝试从 HTML 中删除 JavaScript 我无法让正则表达式与 PHP 一起使用 它给了我一个空数组 为什么
  • 在 Woocommerce 编辑订单页面中显示可编辑的自定义字段值

    我不是开发人员 但以某种方式设法将 Woocommerce 自定义字段添加到结账和订单编辑页面 有类似的问题 但我找不到正确的解决方案 自定义字段在管理订单编辑页面中可见但他们不显示值并且不会添加到订单电子邮件中 我缺少什么 请看最后的截图
  • 学说和大量数据

    我有一个返回约 50k 行的查询 似乎学说将整个结果放入内存中超出了内存限制 128M 我发现节省一些内存的唯一解决方案是 result gt execute array Doctrine Core HYDRATE NONE 但还是超出了极
  • Laravel - 带有 join 和 concat 的查询生成器

    我试图从用户表中提取与 users groups 数据透视表中某个组匹配的所有用户 顺便说一句 我使用的是来自 Cartalyst 的 Sentry 2 这可以让所有用户的名字和姓氏连接起来 User select DB raw CONCA
  • 无法使用php连接到mongodb数据库用户

    我有一个正在运行的 mongodauth true在我的服务器上 如果我登录到我的管理员用户 从管理数据库 则获取数据没有问题 但如果我将第一行替换为 connection new Mongo mongodb mydbadmin email
  • 使用curl作为fgetcsv的fopen文件资源的替代品

    是否可以制作curl 访问url并将结果作为文件资源 就像 fopen 是如何做到的 我的目标 解析 CSV 文件 将其传递给 fgetcsv 我的障碍 fopen被禁用 我的代码块 在 fopen 中 url http download
  • pdo如何检查它是否是从数据库检索的第一条记录?

    sql3 SELECT member FROM levels where upline AND level 1 q3 conn gt prepare sql3 q3 gt execute array level2downlines whil
  • 不使用函数检测字符串结尾

    如何找出 PHP 字符串的结尾 我有一项任务 无需任何函数即可识别字符串长度 我知道 PHP 中的所有字符串都以空字节结尾 0 但我不知道最后一个符号之后的字符串元素 例如 这将不起作用 while a length 如何在不使用任何函数的
  • 如何删除 Laravel 5 中的帖子资源?

    Laravel 5 版本 我正在开发一个新的 laravel 5 版本的项目 由于某种原因 我无法删除帖子 当我按删除时 它只会将我重定向到帖子显示页面 其 id 例如 post 3 我得到一个空白的白色页面 当我返回索引视图时 我会看到所
  • 条件与 eval {php} [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 然后我得到

随机推荐

  • CodeIgniter - 删除文件,路径问题

    我的根目录中有 3 个文件夹 application system 和 uploads 在 application controllers mycontroller php 我有这行代码 delete files uploads file
  • 在 PowerShell 中显示 Unicode

    我想要实现的目标应该相当简单 尽管 PowerShell 试图让它变得困难 我想显示文件的完整路径 其中一些文件的名称中包含阿拉伯语 中文 日语和俄语字符 我总是得到一些无法解读的输出 如下所示 控制台中看到的输出正被另一个脚本使用 输出包
  • 如何在 Chrome DevTools 中查看元素上触发的事件?

    我在库的页面上有一个可自定义的表单元素 我想看看当我与它交互时会触发哪些 javascript 事件 因为我试图找出要使用的事件处理程序 如何使用 Chrome Web Developer 来做到这一点 您可以使用监控事件 http www
  • 如何告诉 JavaFX WebView 忽略“use strict”指令?

    我正在尝试使用以下代码将 mozilla 查看器集成到 JavaFx WebView 中 import javafx application Application import javafx scene Scene import java
  • 如何将这个数学方程写成c++

    我不知道如何编写C 中给出的公式 也不能使用捷径 我必须编写长版本的代码 这是我到目前为止所拥有的 4x 3 8x 2 9x 18 y 7 x 3 3x 2 18 表示绝对值 它需要采用这样的格式 这是我书中的一个示例 double y 4
  • Android的EditText在显示虚拟键盘并且涉及SurfaceView时隐藏

    我有一个简单的用户界面 EditText 应位于 SurfaceView 下方 我使用RelativeLayout 来排列这两个视图 现在 当我点击 EditText 打开虚拟键盘时 SurfaceView 会向上滑动 但 EditText
  • 同时维护多个emacs配置

    我想在同一台电脑上的同一用户帐户上同时维护多个 emacs 配置 例如 emacs prelude emacs starter kit 和我自己的自定义 emacs 配置 为此 我设置了 emacs1 d emacs2 d emacs3 d
  • Qt Signal/Slots 发送完整结构

    我正在尝试通过两个线程之间的信号 槽发送一个结构 我的信号 槽已正确连接 并且我已经能够发送包含部分数据的 QString 但现在我需要发送整个数据 而结构似乎是最明智的 但是 当我尝试时 信号未发送 接收 问题似乎仅与发送 接收结构 前后
  • 在android中通过cardview创建视图

    I want to create this layout 这是一个卡片视图 灰色视图 和图像视图 蓝色视图 我使用这个代码
  • 使用 Facebook 登录 注销后出现问题

    我正在使用 facebook sdk 和 facebook connect 使用 asp net 和 c 将 Facebook 集成到我的网站中 用户可以使用该代码成功登录 我面临的问题是 每当用户通过 fb 登录时 如果用户从 faceb
  • 是否可以更改AVPlayer的背景颜色?如果是,怎么办?

    我希望将默认背景颜色从黑色更改为我想要的颜色 可能是与视频形成对比的颜色 大多数时候是黑色 我已将这段代码添加到我的viewWillAppear 功能 let playerLayer AVPlayerLayer player player
  • 向上或向下滚动时的 JavaScript 事件

    是否可以编写 JavaScript 来在手动向上或向下滚动 DIV 层的滚动条时执行操作 如果是这样 请给我一个提示 以实现一个简单的警报框 表示您向上滚动并向下滚动 您可以简单地使用onscrolljava脚本的事件 OnScroll 事
  • 在heroku上部署django网站出错

    我正在heroku 中部署我的django 网站 并在django 的setting py 文件中使用DATABASE 我正在遵循以下所有步骤赫罗库帮助 https devcenter heroku com articles getting
  • Android - 禁用 HDMI

    我的一个 Android 项目需要时不时地在 2 个 HDMI 输入之间切换 可能是一分钟一次 一根 HDMI 输入来自 Android 设备的 HDMI 输出 一根来自外部不可控源 我发现了一个 HDMI 开关 当信号可用时 它可以自动在
  • 前向声明类型 - 这背后的原因是什么

    Forward declare a type point to be a struct typedef struct point point Declare the struct with integer members x y struc
  • 从动态内容提供者加载 html5 音频并进行身份验证

    假设我们这里有一个内容提供者端点myuri org api auth sources id 它返回由 id 标识的音乐文件 路线 api auth 需要身份验证 在本例中 这是通过在请求标头中传递 JWT 来完成的 如下所示Authenti
  • Symfony2 根据提交的数据形成验证组

    我有一些复杂的表单 带有多个子表单 并且我希望能够根据主表单中选择的单选按钮单独验证每个子表单 我想通过验证组来实现这一目标 注 我没有data class模型 我使用数组 这是我的简化表格 class MyType extends Abs
  • Prolog - 从列表中删除具有相同第一个值的对

    我有这样的对象列表 list obj x y obj x z obj a b obj b c 我想删除那些共享相同第一个值的元素 这样我就可以使用修改后的列表 在这种情况下 最终列表将如下所示 list obj a b obj b c 有人
  • 为什么比较器声明等于?

    比较器接口有自己的equals 方法 任何班级都会得到equals 默认情况下通过 Object 类 需要具备什么equals 接口内的方法 Comparator细化合同Object equals 它必须满足以下规定的约束Object eq
  • 从 PHP 读取 Git 提交消息

    我正在寻找一种使用 PHP 读取 Git 提交消息的方法 我怀疑我需要使用 Git hook 但我以前从未使用过它们 所以我需要一个push朝着正确的方向 具体来说 我想实现以下流程 每次提交后都会自动执行 PHP 脚本 该脚本捕获 Git