问题标签 [githooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
717 浏览

git - 如何让 git 忽略 post/pre-commit 钩子上的未分级更改

我正在尝试提交应该通过所有测试以在我的 Rails 项目中成功实现自动化。问题是我git add --patch在提交之前使用了很多,我希望我的测试只在分阶段的更改上运行。

解决方案 1:git stash --keep-index在 pre-commit 上 做一个或git stash在 post commit 上做一个简单的操作,然后是钩子 ( rake tests) 和git stash pop. 这意味着我必须等待它完成,并且在它运行时,我将无法访问我未暂存的更改。

解决方案 2:我设置了一个新的本地 repo(测试人员)并从第一个 repo(开发)设置了 post-commit 挂钩以推送到测试人员 repo。测试者 repo 应该有一个 post-receive 挂钩来运行测试并通知我(通过电子邮件或 whateva)在我推送之前它是通过还是未能修复提交。

第二种解决方案听起来要好得多(我猜),即使由于文件被忽略,存储库会有所不同。

您还有其他解决方案要提出吗?

0 投票
6 回答
13296 浏览

git - 在 GIT 推送上接收电子邮件

我习惯于颠覆,只要有人提交,协作组就会收到一封电子邮件。GitHub 上是否有类似的功能,所以每当用户推送他们的更改时,在存储库上工作的人都会收到一封电子邮件?

0 投票
0 回答
185 浏览

githooks - git email notification - 多个不相关的目的地

我有 Andy Parkins 脚本设置来发送接收后电子邮件通知。这些是为了履行与供应商的合同,因此电子邮件会发送给供应商。现在,我有一个内部小组也需要通知。由于脚本的配置在 /home/git 中,因此它本质上是全局的。如何为不同的收件人列表设置第二封电子邮件通知?

0 投票
1 回答
406 浏览

githooks - 用 perl 编写的 post-receive 钩子如何获取分支名称?

我有一个用 perl 编写的接收后挂钩。我需要能够弄清楚被推送到哪个分支。我怎样才能做到这一点?我尝试查看 @ARGV 和 $ARGV[2] 没有成功。

0 投票
6 回答
374206 浏览

git - 跳过 Git 提交挂钩

我正在查看一个 git 钩子,它在 Python 代码中查找打印语句。如果找到打印语句,它会阻止 git 提交。

我想覆盖这个钩子,我被告知有一个命令可以这样做。我一直没能找到它。有什么想法吗?

0 投票
3 回答
8963 浏览

git - 如何在 gitolite 中安装挂钩

我已经阅读了有关 hooks类似 问题大量代码的所有文档,但我无法跟踪我的程序中的错误在哪里。我需要在我的 gitolite 安装中安装一个简单的钩子(在 CentOS 上使用 rpm 包制作),所以这就是我所做的:

要安装 gitolite(前一段时间):

  1. 安装了rpm包
  2. # su - gitolite
  3. $ gl-setup /tmp/fabio.pub(作为 gitolite 用户)

现在安装钩子:

  1. 创建了一个post-update包含钩子代码~gitolite/.gitolite/hooks/common的示例chmod +x文件
  2. 如此处所述gl-setup /tmp/fabio.pub再次运行

但是什么也没发生,最新命令的退出状态为 0,但钩子文件在任何存储库中都没有符号链接。那么我的程序有什么问题?我错过了什么吗?

奖励问题:

  1. 如果我理解了文档,我的程序是正确的吗?即每次更新任何钩子时我应该运行 gl-setup 吗?
  2. 通过这种方式,我在这个 gitolite 安装下的每个存储库中安装了共享钩子,对吗?我可以手动安装一个钩子作为符号链接到某个地方,或者只是一个给定存储库的可执行脚本吗?我应该在给定存储库的挂钩文件夹中手动执行此操作吗?我应该关心钩子冲突吗(即单个存储库的任何自定义钩子会阻止任何其他具有相同名称的共享钩子)?

不知道这是否重要,我的 gitolite 版本是1.5.9.1.

0 投票
3 回答
228 浏览

git - 如何在 Git 存储库中保留默认配置文件,同时允许维护人员使用自定义版本?

我们在公共 Github 存储库中有一个 .xml 配置文件,我们希望包含该 .xml 文件的基本默认版本,可供新用户使用。

但是,包维护者希望能够编辑他们的个人 .xml 文件,而不必围绕它进行提交。

在允许维护人员使用自定义版本的同时,将默认配置文件保存在公共 Git 存储库中的最干净的方法是什么?

0 投票
3 回答
2677 浏览

git - Git post-merge hook,如何获取合并分支的名称

我正在尝试创建仅在从特定分支合并时运行的合并后挂钩脚本。如何确定特定提交的分支更改的名称?

例如

0 投票
2 回答
5412 浏览

git - Git钩子:启用回显命令

有什么方法可以在 git hook 中启用 echo

另一个机器上所需的 git push 输出:

这只是一个例子,实际的命令链可能更复杂

并在某处失败

我应该以某种方式将标准输出重定向到标准错误吗?

更新

目前我有正常的git push输出,然后========post-update hook========= ......什么都没有

哦!git 版本是 1.5.6.5

0 投票
2 回答
5565 浏览

mysql - 在 Git 推送和拉取上导出和导入数据库

我需要我的数据库在两台本地计算机之间同步,而不需要在两者之间使用服务器。经过一些研究,我认为我可以使用 Git 挂钩来为我完成任务。

我基本上想要的是在远程存储库上运行mysqldumpgit push并将 SQL 文件添加到提交中)并mysqlimportgit pull远程存储库上运行。

我找不到任何特定的钩子。我尝试了pre-commit钩子,但这并没有在当前提交中添加 SQL 文件。然后我尝试prepare-commit了,但没有运气。

有人对此有答案吗?