问题标签 [git-post-receive]

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 回答
433 浏览

git - 为什么 rm -rf 在 git post-receive 钩子和 shell 中使用时表现不同?

我正在使用此示例发布带有 git post receive hooks 的网站

该钩子几乎将裸仓库克隆到一个临时目录中,并在生成站点后删除该临时 git clone。

当我进行推送时,所有其他任务都很好,但不会删除所有文件。

我收到以下错误:

...

你明白了

但是,当我直接从命令行调用post-receive脚本时,其rm行为符合预期。

为什么?

注意:我已经看过Post-hook receive act's different to shell,其中提问者的问题与处于裸仓库而不是工作树有关。

0 投票
3 回答
3064 浏览

git - git post-receive hook 不能跳回原来的 cwd

当推送到我们共享的裸存储库(通过 ssh)时,提交后无法正常工作。
正如我在这里的许多线程中发现的那样,这很常见,并且它适用于同一服务器上的其他两个存储库,这让我发疯了。

存储库本身与挂钩应检出的目录位于同一目录中

推送时,它不会将文件签出到预期的路径,但会给出以下错误消息:

我找不到任何关于这意味着什么的信息。(据我所知,Google 只会从对 git 本身的贡献中提出提交)。所以我阅读并猜测并尝试了......</p>

  • 另外在接收后挂钩中设置 GIT_DIR
  • 使用 --git-dir=/ab/cd/barerepo --working-dir=/ab/cd/staging 重新初始化裸仓库
  • 在 barerepo/config 中手动设置工作目录
  • 将裸仓库设置为空白并提交
  • 通过克隆设置裸仓库

现在配置看起来像这样

但我也有这个(不费吹灰之力)

我还在 post-receive 钩子中添加了第二行

它将文件写入裸存储库的目录。这对我来说很有意义,因为 GIT_DIR 似乎设置为“。”,这得到了我从另一个 SO 问题中得到的后接收片段的证实

结果:

那么如何让 git 跳回原来的 cwd(当前工作目录?)?仅供参考:我对 git 还很陌生,并且有一种愚蠢的感觉,我错过了一些明显的东西,但是没有找到关于这个特定错误消息的任何重要内容让我想知道。推本身工作正常,顺便说一句。

0 投票
1 回答
406 浏览

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

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

0 投票
4 回答
35007 浏览

github - Jenkins 和 GitHub 网络钩子:HTTP 403

我有一个 GitHub 存储库,我想通过接收后挂钩通知 Jenkins 新提交。我已将 GitHub 插件安装到 Jenkins 中,并允许 Jenkins 管理它自己的挂钩 URL。该项目具有正确的 git 存储库 URL,并被指示“在将更改推送到 GitHub 时构建”。当我让 GitHub 发送一个测试有效负载时,我在前面的 Jenkins 的 nginx 网络服务器中找到了这个:

我正在运行 SSL,所以我禁用它没有效果。我是否需要在权限矩阵中为匿名用户提供特殊权限?

请原谅缺少配置文件:我很乐意分享那些可能存在但我不知道什么可能有用的分享。

0 投票
1 回答
367 浏览

html - 通过 git post-receive 将 styles.less 替换为 styles.css

我有一个带有 index.html 的本地开发网站,它正在使用:

当我准备好编辑时,我提交/推送到我的开发服务器,git post-receive 挂钩运行我的 build.sh 并构建我的 css / requireJS / smartsprites 应用程序。

如何将我的静态 HTML 文件中的上述代码替换为:

无需切换到服务器端脚本 (PHP/etc) 或动态 node.js css 渲染。

在我的 build.sh 脚本中?用正则表达式?如何?一个例子会很好。

0 投票
1 回答
2531 浏览

git - git push到gitolite服务器后如何使用post-receive hook?

每次推送到 gitolite 服务器后,我都尝试使用 post-receive 钩子在 Jenkins 上进行新构建,但推送后它不会自动工作,我需要通过终端手动执行 post-receive 文件来运行它并制作一个建立在詹金斯之上。

AFAIK,我只需要:

  1. 修改服务器上的 post-receive 文件以制作我想要的“在 Jenkins 中创建新版本”。

  2. 通过命令“git push”将代码推送到 gitolite 服务器。

并且 post-receive 钩子将在推送过程后自动执行,对吗?

0 投票
1 回答
498 浏览

git - 如何为 gitolite 设置多个配置 - 接收后挂钩电子邮件通知?

我使用 gitolite 中的配置运行 post-receive 钩子,当某个分支上的 repo 中的任何文件发生更改时,它会向组发送电子邮件。现在,当某些文件在同一个仓库中发生更改时,我有一个请求为不同的“TO”设置电子邮件通知。如何为 post-receive 电子邮件挂钩设置多个配置?另外,如何根据更改的文件触发接收后挂钩?我不相信钩子有文件信息,对吧?

0 投票
1 回答
2754 浏览

git - Git CHMOD 接收后挂钩

我在我的网络服务器上使用一个裸露的远程存储库,它带有一个 post-receive 钩子,它会自动将我的文件推送到 public_html 目录中。

问题是,我正在使用 codeigniter 并且 index.php 文件必须是 chmod 755。我在服务器上使用 filezilla 对其进行了更改,但是每次推送后 index.php 文件都设置为 644,这会导致内部服务器错误。

即使没有更改或隐藏 index.php 也会发生这种情况。

我一直在寻找解决方案,但到目前为止没有运气..有人可以帮我解决这个问题吗?顺便说一下,我正在使用 Tower GIT 客户端提交/推送。

谢谢

0 投票
1 回答
1019 浏览

git - 如何在推送期间发现 GIT 中的文件已更改

当我将某些内容推送到我的 GIT 存储库时,会触发接收后挂钩并执行一些脚本。如果(且仅当)特定文件相对于先前的推送(例如 .sql 文件)发生更改,是否可以在执行这些脚本之前执行某些操作?

谢谢

随机化

0 投票
1 回答
1173 浏览

git - 如何在接收后挂钩中使用 GIT 访问存储库文件

我在 GIT 中遇到了这种情况:

我想在推送中更改特定文件时对它“做某事”。例如,如果 .sql 文件发生更改,则必须将其转储到数据库中。

我在 GIT 中使用 'post-receive' 钩子,声明如下:

如何访问刚刚从挂钩中推送的新 dump.sql?