草庐IT

lifecycle-hooks

全部标签

git - 在 Git 钩子(Hook)中获取提交消息

我想在Git提交之前检查提交消息。我使用预提交Hook来执行此操作,但我找不到在.git/pre-commit脚本中获取提交消息的方法。我怎么能得到它? 最佳答案 在pre-commit钩子(Hook)中,提交消息通常还没有被创建1。您可能想改用prepare-commit-msg或commit-msgHook之一。有一个nicesectioninProGit这些Hook的运行顺序,以及您通常会用它们做什么。1.异常(exception)情况是提交者可能已经使用-m提供了提交消息,但是pre-commitHook仍然无法访问该消息,

git - 处理多个预提交 Hook

我需要使用多个预提交Hook脚本。不确定如何处理它们。是否应该将它们全部组合成一个大型预提交脚本?如果不是,如何处理多个预提交脚本? 最佳答案 Shouldallofthembecombinedintoonesinglelargepre-commitscript?是和否:你只能声明一个预提交脚本,所以这个脚本应该负责:调用实际的预提交脚本选择调用这些脚本的顺序。所以:一个预提交脚本调用多个脚本,每个脚本允许或不允许(及其退出状态)继续提交。 关于git-处理多个预提交Hook,我们在St

Git 钩子(Hook)管理

我们在项目中使用自定义编写的GitHook。Hook存储在项​​目的存储库中,当它们发生变化时,要获得新版本,每个用户必须手动将它们复制到他的.git/hooks目录中。这样比较不方便。改进这一点的一种方法是使.git/hooks成为工作树的符号链接(symboliclink)。但这意味着每个分支(甚至是用户正在开发的本地特性分支)都应该有最新版本的钩子(Hook)。这也不方便。你会如何解决这个问题? 最佳答案 维护一个单独的钩子(Hook)存储库并将符号链接(symboliclink)到该存储库。我同意,如果Git有一个用于传播h

git - 我如何对 git hooks 中的新标签使用react?

我想设置一个git钩子(Hook),它根据传入的标签创建一个CDN风格的目录结构。因此,例如,如果本地存储库中的最后一个标签是“v1.2.1”并且我使用“v1.2.2”提取提交,它应该看到新标签并将存储库直接克隆到一个新的(../1.2.2)相应地。我很确定我想将它附加到接收后,但是我在文档中找不到任何关于githooks的关于如何读取传入标签的内容。它们是在不同的钩子(Hook)上交付的吗?我真的需要让shell脚本运行git命令来查看是否有任何新提交有新标签吗?谢谢! 最佳答案 标签和其他标签一样是引用(比如提交)。如果标签被推

git - 在 python/bash 脚本中编写 Git 钩子(Hook)

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我最近需要编写git钩子(Hook),以便所有提交都引用特定的票证。我希望有一个地方可以开始学习。progit书中的所有内容都是用Ruby编写的。由于Ruby不是我的强项,任何人都可以分享有关用其他语言编写的githooks的教程吗?(我特别喜欢Python或Bash脚本。)

git Hook : is there a clone hook?

我们想在外部数据库中存储一些关于提交的元信息。在克隆或checkout期间,应引用此数据库,我们将元信息复制到克隆的存储库中的文件中。需要数据库而不是仅仅使用文件是为了索引和搜索等......我想如果有一个克隆钩子(Hook),我们就可以触发它。我无法在.git/hooks中的示例中找到克隆Hook。有吗?checkout后Hook是客户端的唯一可能性吗? 最佳答案 好的,一种方法是使用clone--template选项。指定客户端Hook将存储为--template开关值的位置。钩子(Hook)被复制到克隆中,并立即触发check

Git-远程 : error: cannot run hooks/post-receive: No such file or directory

我得到错误:remote:error:cannotrunhooks/post-receive:Nosuchfileordirectory尝试推送到远程时。post-receivce文件存在于正确的位置(testnew.git/hooks)并包含:#!/bin/bash2exportGIT_DIR=/var/www/testnew/testnew/.git/exportGIT_WORK_TREE=/var/www/testnew/testnew/cd/var/www/testnew/testnew/echo"herewego..."gitfetchgitmergeorigin/maste

git - 将 PowerShell 脚本作为 git hooks 运行

是否可以将PowerShell脚本作为githooks运行?我在PowerShell提示符下运行git,这应该没有任何区别,但我似乎无法让它们工作,因为Hook的命名没有扩展名,而PowerShell需要(据我所知).ps1扩展名.我不确定这是问题所在,还是其他原因。 最佳答案 自powershell7.2该脚本在Windows上必须具有.ps1扩展名。所以这个答案是行不通的。您可以将PowerShell脚本直接嵌入Hook文件中。这是我使用的pre-commitHook的示例:#!/usr/bin/envpwsh#Verifyus

git - 链接 git 钩子(Hook)

很多人可能都知道,git中只能有一种钩子(Hook)类型。如果需要评估两个更新Hook。git管理员留下了两个难以管理的解决方案:将钩子(Hook)脚本merge在一起使用exec手动链接它们我正在寻找一个优雅的解决方案(用BASH编写),比如文件夹hooks/update.d或hooks/post-receive.d将允许钩子(Hook)评估的松散耦合。一旦Hook失败,链接应立即停止。我实际上在这个URLhttp://blog.bluefeet.net/2011/08/chained-git-hooks找到了一个用perl编写的可接受的解决方案问题:我的服务器运行不同版本的perl

git - 如何删除git钩子(Hook)

我在预提交文件中设置了一个git钩子(Hook),以便在任何提交之前运行gitpull。现在我已经删除了那个文件并多次重启了我的电脑,但是那个钩子(Hook)在我提交之前仍在运行。我怎样才能完全删除或禁用它? 最佳答案 我弄清楚是什么原因造成的:我在git核心目录中创建了我的pre-commitHook,但是git在项目的.git/hooks/目录中创建了一个pre-commitHook。我刚刚删除了它。这意味着在项目的根目录中运行@romin21提到的命令:rm-rf.git/hooks