Git 挂钩,通过提交进行接收后循环

2023-12-19

在服务器端使用 git hooks,是否可以在每次有人推送到远程存储库时循环从客户端发送到服务器的新提交消息?

我需要从每条消息中提取信息,

哈希、日期、提交作者、分支

我找不到任何关于 git hooks 的好的文档来解决这个问题。 我已读完git post-receive 钩子,抓取提交消息并回发到 URL https://stackoverflow.com/questions/8263186/git-post-receive-hook-that-grabs-commit-messages-and-posts-back-to-url

我不明白一行简单的代码


正如中所解释的githooks 手册页 https://www.kernel.org/pub/software/scm/git/docs/githooks.html,post-receive hook 为每个 ref 获取一行,包含

SP SP OF

其中 是存储在 ref 中的旧对象名称, 是要存储在 ref 中的新对象名称, 是 ref 的全名。

所以,如果你把这个放进去.git/hooks/post-receive:

#!/bin/sh
while read oldvalue newvalue refname
do
   git log -1 --format='%H,%cd,%an' $newvalue
   git branch --contains $newvalue | cut -d' ' -f2
done

The while语句使其循环遍历每一行,将行中的三个字段读入变量$oldvalue, $newvalue and $refname

The git log行将输出哈希,日期,将作者提交到标准输出。

The git branch线将尝试输出分支 https://stackoverflow.com/questions/2706797/git-finding-what-branch-a-commit-came-from。 (或者你可以使用echo $refname,将以格式输出refs/heads/master)

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

Git 挂钩,通过提交进行接收后循环 的相关文章

  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • 如何解决 VSTS 中拉取请求中的合并冲突?

    我已经创建了拉取请求 我进入了这个 批准 按钮不执行任何操作 并且 完成 被禁用 如何解决拉取请求中的冲突 Update 微软刚刚添加了基于浏览器的合并 这可能会让你摆脱小冲突的困境 并提供自 Sprint 150 起改进了不同场景的可视化
  • 如何 git grep 仅一组文件扩展名

    如何执行 git grep 并将检查的文件限制为一组文件 我希望能够 grep cpp 和 h 文件的内容来查找 MyFunc 例如 git grep MyFunc hc 但是 这也匹配 c 文件和 cs 文件 Use git grep M
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 在 Windows 7 上的 Sourcetree 中比较 Word docx 文件

    我一直在尝试获取在 Windows 7 上的 Sourcetree 中工作的 Word docx 文件的文本差异 我已按照此处的说明进行操作将 Microsoft Word 与 git 结合使用 http blog martinfenner
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • 如何克隆特定的 Git 标签

    From git clone 1 手册页 http git scm com docs git clone branch还可以在结果存储库中的该提交处获取标签并分离 HEAD 我试过 git clone branch
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • 使当前提交成为 Git 存储库中唯一(初始)提交?

    我目前有一个本地 Git 存储库 我将其推送到 Github 存储库 本地存储库有约 10 次提交 Github 存储库是其同步副本 我想要做的是从本地 Git 存储库中删除所有版本历史记录 以便存储库的当前内容显示为唯一提交 因此存储库中

随机推荐

  • 无法读取属性“getText”量角器

    我正在尝试将一个循环插入一个循环并获取Cannot red property getText of undefined error 这是我的代码 element all by className col md 4 ng scope then
  • 重置选择框的值

    我正在尝试重置两个选择字段的值 其结构如下
  • 艰难地学习 Ruby 第 9 章 三引号

    Zed Shaw 的 Learn Ruby the Hard Way 第 9 章使用了三重双引号 puts There s something going on here With the three double quotes We ll
  • 在给定合并提交 SHA1 的情况下,您如何查看/显示已完成的 git 合并冲突解决方案?

    当您解决冲突 然后暂存更改 然后执行 git diff 时 它会显示两列 和 一列代表 我们的 一列代表 他们的 给定存储库的 git 历史记录中的合并提交 我如何查看由其他人完成的解决方案 在其他情况下 我以前见过它 我想是在 gitk
  • 滚动到验证摘要 - ASP.net MVC

    当用户单击应用程序中导致验证错误的按钮时 是否有办法让页面滚动到验证摘要的位置 如果出现错误 我需要对这两种情况执行此操作 客户端验证阻止页面提交 服务器验证重新显示网页 在 MVC 中是否有一种简单的方法可以实现这一点 jquery 滚动
  • 自定义 Android TabHost 慢片段

    我使用 ActionbarSherlock 和 SlidingMenu 我的 MainActivity 不访问数据库 也不解析任何内容 一切都是静态的 根据您从滑动菜单中选择的 部分 动态生成选项卡 单击 2 次后 应用程序变得非常慢 下面
  • 检查android应用程序是否在前台? [复制]

    这个问题在这里已经有答案了 我针对这个问题找到了很多答案 但这都是关于单个活动的 如何检查整个应用程序是否在前台运行 我不明白你想要什么 但你可以检测当前的前台 后台应用程序ActivityManager getRunningAppProc
  • 表溢出到 div 之外

    我试图阻止一个已明确声明宽度的表在其父级之外溢出div 我想我可以使用某种方式做到这一点max width 但我似乎无法让它工作 以下代码 窗口非常小 将导致这种情况 div div
  • 我什么时候应该在响应标头中真正将“Access-Control-Allow-Credentials”设置为“true”?

    MDN https developer mozilla org en US docs Web HTTP Headers Access Control Allow Credentials表示 当必须在站点之间交换 cookie 授权标头或 T
  • 在 Excel 中将 HEX 转换为 RGB

    我有一列 HEX 和三列 R G 和 B 如何将 HEX 转换为 RGB 例如ff0000 to R 255 G 0 and B 0 我知道前 2 个字符ff属于 R 接下来的200属于 G 最后的200属于 B 所以我必须使用 LEFT
  • Excel:将数组传递给用户定义函数 (VBA)

    编辑 解决方案 请参阅下面的原始问题 在将 1 2 3 这样的数组传递给 UDF 时 我发现需要考虑两件事 区域设置 请参阅答案 1 德国系统上的列表分隔符 通常 是 因此我需要使用 1 2 3 传递的数组在函数中显示为二维数组 因此 它的
  • Objective-C 类中的 Swift 协议

    I wrote SearcherProtocol在 Swift 中并且需要实现一个 Objective C 类FileSearcher必须使用这个协议 所以我尝试了这个 import
  • C++ 警告:“指针参数“arr”可以是指向 const 的指针”

    我有下面三个函数 我不确定为什么第二个和第三个函数在 arr 处有警告 但第一个函数没有 该警告是什么意思以及如何解决这个问题 IDE 克利翁2017 3 MinGW64 5 0 CMake 3 9 4 谢谢 int getFirstEve
  • Python:psycopg2.ProgrammingError:INSERT 的表达式多于目标列

    我是 python 新手 我似乎不明白为什么会出现这个错误 它告诉我参数太多 但表有 8 列 我向 它传递了 8 个参数 到底是怎么回事 这个错误是否会产生误导 真正的问题是我试图传递的值可能是None或者可以是类型Boolean usin
  • Swift 反射功能 - 如何获取实例变量名称?

    给定一个构造函数 例如 required init pTableName String pRecordKey String pStartAtRecord Int parameters append ChildElement identifi
  • 隐藏Referer(PHP、HTML、JS 无关紧要)

    我正在使用这样的东西 mysite com out php url outurl com 我只是使用一个简单的重定向 但我只是想知道如何隐藏引荐来源网址 Thanks 编辑 我最终进行了两次元刷新 引荐来源网址是由用户的浏览器附加的 而不是
  • 在应用程序购买 SKPaymentQueue finishTransaction 不起作用

    我正在 iOS sdk 中工作应用程序内购买项目 我已经准备好了应用程序内购买类 用于从应用程序商店购买应用程序 并启用项目的内部内容 但是 我的问题是 SKPaymentQueue 没有完成我的类的工作 这是我的应用程序内购买的代码班级
  • Spring Data中的多态查询

    我有一个基本抽象类 Entity Table name P FLD Inheritance strategy InheritanceType JOINED DiscriminatorColumn name FLD DISCRIMINATOR
  • 当应用程序被销毁时 PreferenceActivity 保存首选项

    我有一个 MainActivity 和一个从该 Activity 调用的 PreferenceActivity 我还运行了一个服务来查询这些首选项 当我打印这些值时 我明白了 D pref scrobble 4083 true D pref
  • Git 挂钩,通过提交进行接收后循环

    在服务器端使用 git hooks 是否可以在每次有人推送到远程存储库时循环从客户端发送到服务器的新提交消息 我需要从每条消息中提取信息 哈希 日期 提交作者 分支 我找不到任何关于 git hooks 的好的文档来解决这个问题 我已读完g