草庐IT

git - git push 后本地执行 Hook ?

我看过thegithooksmanpage但除非我遗漏了一些东西,否则我看不到本地的、推送后的git钩子(Hook)的选项。在我将master分支推送到GitHub存储库后,我想要一个更新我的Web服务器上的api文档(我已经有一个脚本)。当然我也可以写自己的脚本,结合gitpush和apidocs运行,但感觉有点不雅。 最佳答案 这个问题的另一个解决方案是为执行.git/hooks/pre-push和.git/hooks/post的gitpush设置一个包装器-在gitpush调用之前和之后推送脚本。可能的包装器可能如下所示:#!

git - 强制 git 运行接收后 Hook ,即使一切都是 "up-to-date"

即使我没有要推送的新提交,如何强制git在服务器上运行post-receiveHook?背景我使用git自动将网站部署到服务器。我在服务器的protected区域中有一个裸仓库和一个post-receiveHook,用于检查内容并系统地将某些文件复制到public_html文件夹中。(灵感来自thistutorial)我厌倦了在服务器上手动修改post-receiveHook,所以我的post-receiveHook现在实际上从repo复制了一个新版本的它自己:#!/bin/shrm-rf~/../protected/*GIT_WORK_TREE=~/../protectedgitch

Git 远程/共享预提交 Hook

将一个官方存储库作为远程存储库,并从中克隆多个本地存储库,是否可以在该主存储库上编写预提交Hook脚本并在它的所有克隆上强制执行? 最佳答案 我不这么认为,因为钩子(Hook)没有被克隆。可能是如果该Hook脚本本身是版本化的,然后链接到克隆服务器中的(符号链接(symboliclink))(前提是他们的操作系统支持该链接功能)。或者如果钩子(Hook)是gittemplatedirectory的一部分用于创建克隆(这只会确保它们存在于克隆存储库中,不能保证它们实际被使用和执行)。但我认为没有任何“中央”方式来强制执行提交。正如Je

git - 在 git hook 中,当前工作目录是否保证在 git 存储库中?

根据实验,githooks似乎在当前目录设置为存储库的根目录的情况下运行。但是,我在git文档中看不到任何关于这一点的保证。我应该依赖当前工作目录来定位git存储库,还是有更好的方法来计算与Hook关联的git存储库? 最佳答案 当前的答案似乎已经过时。从2.9.0开始,文档说明如下:BeforeGitinvokesahook,itchangesitsworkingdirectorytoeithertherootoftheworkingtreeinanon-barerepository,ortothe$GIT_DIRinabarer

git - 如何从 commit-msg Hook 中提示用户?

如果用户的提交消息不遵循特定的准则,我想警告用户,然后让他们选择编辑提交消息、忽略警告或取消提交。问题是我似乎无法访问stdin。下面是我的提交信息文件:functionverify_info{if[-z"$(grep'$2:.*[a-zA-Z]'$1)"]thenecho>&2$2informationshouldnotbeomittedlocal_editor=`gitconfig--getcore.editor`if[-z"${local_editor}"]thenlocal_editor=${EDITOR}fiecho"Doyouwantto"selectCHOICEin"ed

git - 使用更新后 Hook 在另一个 repo 上执行 "fatal: not a git repository: ' 时得到 .'" 'git pull'

我是git的新手,所以如果我在这里滥用术语,我深表歉意(并请纠正我),但我会尽力而为。我正在尝试在Web服务器上设置一个裸git存储库(hub)和一个开发站点工作副本(prime)。我试图在thisarticle之后对其进行图案化.我希望在将中心repo推送到时更新开发工作副本。我的印象是正确的钩子(Hook)是post-update,我是这样创建的:#!/bin/shwhoamicd/path/to/working-copy/RET=`gitpull`echo$RET更新当我将更改从我的本地存储库推送到裸集线器时,我从更新后脚本中获得以下输出:remote:sitesremote:f

Git 钩子(Hook)发送有关 repo 更改的电子邮件通知

如何配置适当的GitHook,以便在将一组更改推送到上游存储库时发送摘要电子邮件? 最佳答案 另一种更现代的方法是使用git-multimail,正如Chords所建议的那样下面。这就是您在2009年的做法。您可以添加类似this的内容到$GITDIR/hooks中的接收后Hook,或使用源代码的contrib目录中的脚本(Availablehere) 关于Git钩子(Hook)发送有关repo更改的电子邮件通知,我们在StackOverflow上找到一个类似的问题:

git - 编写一个 git post-receive hook 来处理特定的分支

这是我目前在公司服务器中的裸仓库中的钩子(Hook):gitpushoriginmaster这个钩子(Hook)推送到Assembla。我需要的是当有人将更改推送到我们服务器上的那个分支时,只推送一个分支(理想情况下是主分支),而忽略对其他分支的推送。是否可以从裸仓库中选择分支并仅将该分支推送到Assembla? 最佳答案 post-receivehook从stdin获取它的参数,格式如下:由于这些参数来自标准输入,而不是来自命令行参数,因此您需要使用read而不是$1$2$3。post-receivehook可以一次接收多个分支(

git - 如何配置 Git post commit 钩子(Hook)

如何从Jenkins远程触发构建?如何配置Gitpostcommit钩子(Hook)?我的要求是,每当在Git存储库中为特定项目进行更改时,它都会自动启动Jenkins为该项目构建。在Jenkins触发器构建部分,我选择了远程触发器构建。在.git目录下,hooks目录是我们必须配置提交后文件的地方。我很困惑如何从那里触发构建(我知道某些部分我们应该使用curl命令)。curlcmbuild.aln.com/jenkins/view/projectname/job/myproject/buildwithparameters?Branch=feat-con我已将此命令放在我的git服务器

git - 是否有用于 pull 的 git 钩子(Hook)?

每次运行gitpull时,我都需要对我的项目执行一些操作(准备gettext*.mo消息文件)。有没有合适的git钩子(Hook),我可以将其用于此目的? 最佳答案 githooks手册页是一个完整的钩子(Hook)列表。如果它不在那里,它就不存在。也就是说,是一个post-mergehook,并且所有pull都包含merge,但并非所有merge都是pull。它在merge后运行,不会影响结果。如果有冲突,它永远不会被执行;如果真的很重要,您必须使用提交后Hook来获取它,或者手动调用它。