问题标签 [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.
git - 为什么 rm -rf 在 git post-receive 钩子和 shell 中使用时表现不同?
我正在使用此示例发布带有 git post receive hooks 的网站。
该钩子几乎将裸仓库克隆到一个临时目录中,并在生成站点后删除该临时 git clone。
当我进行推送时,所有其他任务都很好,但不会删除所有文件。
我收到以下错误:
...
你明白了
但是,当我直接从命令行调用post-receive
脚本时,其rm
行为符合预期。
为什么?
注意:我已经看过Post-hook receive act's different to shell,其中提问者的问题与处于裸仓库而不是工作树有关。
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 还很陌生,并且有一种愚蠢的感觉,我错过了一些明显的东西,但是没有找到关于这个特定错误消息的任何重要内容让我想知道。推本身工作正常,顺便说一句。
githooks - 用 perl 编写的 post-receive 钩子如何获取分支名称?
我有一个用 perl 编写的接收后挂钩。我需要能够弄清楚被推送到哪个分支。我怎样才能做到这一点?我尝试查看 @ARGV 和 $ARGV[2] 没有成功。
github - Jenkins 和 GitHub 网络钩子:HTTP 403
我有一个 GitHub 存储库,我想通过接收后挂钩通知 Jenkins 新提交。我已将 GitHub 插件安装到 Jenkins 中,并允许 Jenkins 管理它自己的挂钩 URL。该项目具有正确的 git 存储库 URL,并被指示“在将更改推送到 GitHub 时构建”。当我让 GitHub 发送一个测试有效负载时,我在前面的 Jenkins 的 nginx 网络服务器中找到了这个:
我正在运行 SSL,所以我禁用它没有效果。我是否需要在权限矩阵中为匿名用户提供特殊权限?
请原谅缺少配置文件:我很乐意分享那些可能存在但我不知道什么可能有用的分享。
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 脚本中?用正则表达式?如何?一个例子会很好。
git - git push到gitolite服务器后如何使用post-receive hook?
每次推送到 gitolite 服务器后,我都尝试使用 post-receive 钩子在 Jenkins 上进行新构建,但推送后它不会自动工作,我需要通过终端手动执行 post-receive 文件来运行它并制作一个建立在詹金斯之上。
AFAIK,我只需要:
修改服务器上的 post-receive 文件以制作我想要的“在 Jenkins 中创建新版本”。
通过命令“git push”将代码推送到 gitolite 服务器。
并且 post-receive 钩子将在推送过程后自动执行,对吗?
git - 如何为 gitolite 设置多个配置 - 接收后挂钩电子邮件通知?
我使用 gitolite 中的配置运行 post-receive 钩子,当某个分支上的 repo 中的任何文件发生更改时,它会向组发送电子邮件。现在,当某些文件在同一个仓库中发生更改时,我有一个请求为不同的“TO”设置电子邮件通知。如何为 post-receive 电子邮件挂钩设置多个配置?另外,如何根据更改的文件触发接收后挂钩?我不相信钩子有文件信息,对吧?
git - Git CHMOD 接收后挂钩
我在我的网络服务器上使用一个裸露的远程存储库,它带有一个 post-receive 钩子,它会自动将我的文件推送到 public_html 目录中。
问题是,我正在使用 codeigniter 并且 index.php 文件必须是 chmod 755。我在服务器上使用 filezilla 对其进行了更改,但是每次推送后 index.php 文件都设置为 644,这会导致内部服务器错误。
即使没有更改或隐藏 index.php 也会发生这种情况。
我一直在寻找解决方案,但到目前为止没有运气..有人可以帮我解决这个问题吗?顺便说一下,我正在使用 Tower GIT 客户端提交/推送。
谢谢
git - 如何在推送期间发现 GIT 中的文件已更改
当我将某些内容推送到我的 GIT 存储库时,会触发接收后挂钩并执行一些脚本。如果(且仅当)特定文件相对于先前的推送(例如 .sql 文件)发生更改,是否可以在执行这些脚本之前执行某些操作?
谢谢
随机化
git - 如何在接收后挂钩中使用 GIT 访问存储库文件
我在 GIT 中遇到了这种情况:
我想在推送中更改特定文件时对它“做某事”。例如,如果 .sql 文件发生更改,则必须将其转储到数据库中。
我在 GIT 中使用 'post-receive' 钩子,声明如下:
如何访问刚刚从挂钩中推送的新 dump.sql?