问题标签 [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 投票
1 回答
1894 浏览

php - 从 GIT 更新后挂钩执行 PHP

我在我的服务器上使用 GIT,我试图在每次更新我的存储库时执行一个 PHP 文件。我正在尝试使用我的更新后挂钩来实现这一点。

这是我试过的代码:

我似乎无法让 PHP 执行。任何人都可以对此有所了解吗?

0 投票
3 回答
6039 浏览

git - git 网站更新策略 - 如何同步开发和实时存储库?

以下是我构建 git-powered-website 更新和备份策略的方式:

我可以通过 SSH 访问托管网站的 Linux VPS。这是我所做的:

1)在网站服务器 - 在适当的网站文件夹(公共根之前的一级)创建了一个 git repo:

2) 在备份服务器上 - 在另一个 VPS 上创建了一个镜像仓库,用于备份目的:

请注意,镜像仓库也是一个裸仓库(没有签出的工作树)。

3) 设置 CRONJOBS - 一个在网站服务器上,用于吸收 wesbite 文件系统的更改(可以通过脚本、FTP 等进行更改)。它每天运行以下 bash 脚本:

这样,实时网站更改将提交到存储库主分支。

在备份服务器上设置了另一个 cronjob。它每天运行以下脚本,就在上面的另一个之后:

这样,我在备份服务器上就有了每日更新的“备份”,这也是一个 git 存储库,允许我在必要时及时向后移动。我不需要太害怕因意外覆盖或删除而丢失东西......而且这个过程是自动化的!

我每天都会收到来自 cronjobs 的几封电子邮件。它允许我检查网站中的更改,并确认两个 cronjobs 都在正确运行。(设置了另一个 cronjob 来执行数据库备份。)

4)设置开发(本地回购+工作树) - 我直接从网站上签出一个副本,然后创建一个名为“dev”的新本地分支:

现在,我可以玩开发分支,做我的工作了。

从这一点,我想知道:

  • 如何将我的更改推送回实时网站?
  • 如何从网站取回更改并合并到我的开发分支?

简而言之:如何正确地将实时站点与开发分支同步而不搞砸?

0 投票
3 回答
26663 浏览

git - 在 bash 脚本中执行 git 命令

我正在gitosis为中央存储库编写推送后挂钩

它将更新从中央存储库拉到测试环境

nano /var/git/repositories/holding.git/hooks/post-update

这是我在客户端推送后得到的(开发虚拟机)

显然,我试图告诉 git,它应该在哪里拉,失败了。

在 bash 脚本中为指定的工作副本运行 git 命令的正确方法是什么?

0 投票
1 回答
4729 浏览

git - GIT 的常见 bugzilla 钩子是什么?

我正在寻找一个 git 钩子,当提交消息包含修复/评论标签时,它会向 bugzilla 提交帖子。但是,我找不到通用工具。这是Git wiki 上的替代列表。有谁知道 Fedora 或 KDE 正在使用哪些工具?

0 投票
2 回答
6115 浏览

git - Egit 钩子不会被触发

我有一个带有预提交钩子的 git repo,它在 100% 的时间里故意失败。

如果我尝试通过命令行提交,它会按预期失败。但是,如果我从 egit 提交,则挂钩将被忽略并提交更改。

egit/jgit 还不能识别钩子吗?有解决方法吗?

提前致谢!

0 投票
4 回答
5342 浏览

git - 使用 git post-merge 修复权限

在我工作的一台服务器上,我们必须以 root 身份登录(原因我不会进入这里)。我们设置了一个用于 Web 服务器的 git 存储库,但由于文件是作为 root 创建的,因此 git 修改的文件具有错误的权限。

我创建了一个非常简单的合并后挂钩,我认为它可以解决问题。

我使用执行权限将其放入.git/hooks/post-merge其中,但该文件似乎永远不会运行。这是我第一次尝试设置挂钩,所以也许我遗漏了一些明显的东西。

我确实注意到的一件事是大多数钩子都有一个.sample文件,而合并后没有。(git 版本 1.7.4)

提前致谢!

0 投票
2 回答
8185 浏览

git - 每个分支的 Git 提交挂钩

我正在研究一些更高级的 git 用法,我认为钩子是我想要的方式,也许有人可以在这里给我一些建议。

我的计划是拥有一个包含 3 个分支(开发、登台和生产)的 git 存储库。我希望提交到这 3 个分支中的每一个以在提交后触发不同的脚本。

git 有能力做到这一点还是我在叫错树?

提前致谢。

0 投票
1 回答
177 浏览

git - 用于更新站点的 git hook 问题

我已经在服务器上建立了一个网站并使用 git 来维护它。出于这个原因,我创建了两个 git 存储库,一个$HOME/site用于推送的裸存储库,/var/www一个用于每次更改时从裸存储库中提取的非裸存储库。

为了自动更新非裸存储库,我在裸存储库中创建并授予了post-updategit 挂钩的执行权限,其中包含以下内容:

但是,每次推送到裸存储库后,我都可以在终端上看到以下内容:

关于这个钩子,我有什么遗漏或做错了吗?

0 投票
2 回答
104 浏览

git - 应该如何(以及在​​哪里)定义挂钩以将网站自动上传到生产环境?

我有一个充当 git 服务器的中央服务器,我从另一台电脑推送我的更改。我也与另一位开发人员并行工作。他在 git 服务器中准备了一个钩子,所以当我们推送它时,它会拉取任何更改。

我们现在想要做的也是从生产服务器中提取。我们使用两个主要分支(master 和 stable),所以当我们决定提交一些稳定的东西时,我们希望生产服务器以任何方式拉取它。我不太确定是否可以按需拉动,但我几乎没有发现关于这方面的信息。你有什么主意吗?提前致谢。

0 投票
1 回答
539 浏览

git - 如何传播我的 git 配置/挂钩?

我最近决定希望所有提交到我的存储库的人填写一个简单的提交日志。基本上我希望他们填写提交信息的表格。

快速搜索找到了我: 如何更改 git commit 消息中的默认注释?

现在,我可以使用我的表单大纲生成一个默认提交消息。

但是,我知道出于安全原因,git 不会让我将钩子推送给连接到我的存储库的其他人。

或者,我可以更改我的 commit.template 以指定一个模板,并且每当我进行提交时,我都会看到一个要填写的表单。

同样,我似乎无法更改其他人机器上的配置。

有没有办法在 git 中为每个人提供相同的默认提交消息,而无需他们自己设置?