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

git - git checkout 裸露在 post-receive 中的子模块

如何在包含子模块的接收后挂钩中签出服务器上的裸存储库?

我目前将此作为接收后挂钩:

但是这样子模块不会被初始化。

我尝试为测试手册执行此操作:

submodule update命令失败并显示以下错误消息:

这种行为已经(未回答)在这里受到质疑:Git submodules with separate work_tree

如果它们已经在那里,它不会重新初始化它们也会很好。

0 投票
0 回答
540 浏览

git - git push 后使用 post-receive 挂钩后的目录权限

我意识到有很多关于此的帖子,但我怀疑部分问题是我可能没有正确运行 apache。

在查看之前,core.filemode我是否首先需要使用相同的用户/组获取本地和服务器文件/目录?

例如,我读过一些关于以用户身份运行 apache 的内容——这是一种更好的设置方式吗?

0 投票
1 回答
154 浏览

php - Git Post-Receive Hook 不一致地添加更改

我正在尝试编写一个接收后挂钩,它将拉入推送到 bitbucket 帐户的所有新分支。然后,如果推送这些更改的人是特定开发站点的指定用户,则应自动签出该分支。

这是代码:

问题是这样的:

它并不总是有效!有时即使应该签出分支,它也不会签出。此外,有时它在签出新分支时会留下文件。这导致 git 说一大堆文件被修改了,这些文件不在它所在的分支中。

请帮忙!很卡。

谢谢

0 投票
1 回答
75 浏览

php - 寻找一种运行 php git post-recieve 挂钩的安全方法

我有一个执行 git pull 的钩子,但是当它需要写入添加的文件时它会失败。它操作的用户是 apache,当授予它写权限时(通过将 apache 添加到具有写权限的组),它可以很好地执行 git pull。

我想出了一些解决方案...

  • 将 apache 保留在具有写权限的组中(感觉不安全)
  • 将文件的所有权更改为 apache(不安全和 hacky)
  • 使用 sudo (但这需要存储密码或没有密码)
  • 在 git pull 执行之前和之后执行 chmod 添加写入 apache (hacky)

然而,所有这些似乎都是不安全/骇人听闻的解决方案。

请分享您用来解决这些问题的任何建议或方法。我很想听到任何解决方案,特别是如果您必须自己跳过这个障碍。

0 投票
0 回答
38 浏览

git - 不一致的接收后挂钩失败

我已经设置了一个工作流程,在该工作流程中我推送到服务器上的一个裸仓库,然后一个接收后挂钩将文件复制到提供该站点的文件夹中。

但是,我发现我以这种方式设置的站点中只有 50% 实际工作,另外 50% 的 post-receive 挂钩似乎没有将任何文件复制到站点目录中。

删除服务器上的所有内容并重新启动通常可以解决问题,但我想知道是否有技巧可以让这些更可靠地工作,或者是否有快速解决问题的方法 - 目前我:

  1. 检查 post-receive 钩子中的路径是否正确
  2. 确保接收后挂钩是可执行文件

一旦我更新/检查了这些东西,我还有什么需要做的吗?

0 投票
1 回答
620 浏览

git - Git post在另一台计算机上接收挂钩

我已经建立了我的网站,这样当我在本地完成工作和测试等时,我可以像这样实时推送更改:

git push khwp

这很好用。我的本地文件位于 Dropbox 文件夹中,因此我也可以在笔记本电脑上处理它们。然而,在后者上,上述命令不起作用。我可以很好地添加和提交文件,但由于某种原因 push 命令不起作用。

我怎样才能解决这个问题?

我可能应该补充一点,我是 git 的新手,但我想你已经明白了......

编辑:这是我得到的错误:

没有企业防火墙,没有“推送 url”。密钥配置没有问题(我可以在没有密码的情况下通过 ssh 进入服务器)并且用户名和电子邮件也已设置。

0 投票
4 回答
22724 浏览

git - 如何测试 git 钩子

由于“测试”是 Git 钩子的常见用途,我的问题很难搜索。

我正在编写一个相当复杂的 git post-receive 钩子,并想知道测试它的最佳方法是什么。目前我的流程是:

  • 在一个虚拟的“远程”仓库中对 post-receive 进行更改
  • 更改虚拟本地存储库
  • 在虚拟本地仓库中提交更改
  • 将更改推送到虚拟远程仓库

有没有更简单的方法来测试这个?理想情况下,它看起来像:

  • 对虚拟回购中的接收后进行更改
  • 发出“魔术”命令来测试接收后

也许我可以“重新发布”以前的推送,或者让远程仓库就像它刚刚收到带有特定哈希的推送一样?

0 投票
1 回答
576 浏览

git - Git:了解接收后

最近从 SVN 迁移后,我对 Git 世界还很陌生,我正试图理解这个post-receive钩子。

希望我说这是一个服务器端钩子是正确的,但是我将如何使用该post-receive钩子在客户端运行命令,或者是否有另一个钩子来实现这一点?


例如。

post-receive钩子在服务器上运行。向客户端/提交者发送命令并且该命令在他们的计算机上运行(例如收到回显提交。)


对不起,如果我完全错了 - 我是 Git 新手。

0 投票
1 回答
1087 浏览

windows - 在 Windows 上设置 git repo post-receive

我想在我的 Windows 服务器上设置 git 部署,但是我在从 git post-receive 事件更改 director 时遇到了一些麻烦。我收到“没有这样的文件或目录”错误。

我有以下设置:

  1. Windows 共享上的 git 存储库 //share/git/repo/
  2. 接收后配置如下:

    #!/bin/sh

    echo "构建 Arla 解决方案"

    cd /c/构建

    取消设置 GIT_DIR

    git pull 起源大师

    echo "做一些后期构建操作..."

当我对存储库进行提交/推送时,如果在线失败:cd C:/Builds.

我在 Linux 服务器 (VPS) 上设置了类似的东西,没有任何问题。我认为问题在于我如何格式化更改目录。

有什么建议么?

0 投票
1 回答
61 浏览

git - 在 GIT 存储库创建期间不要充斥着收到后的电子邮件

我试图在第一次创建 GIT 存储库时阻止大量电子邮件。例如,假设我正在从 SVN 迁移到 GIT,并且我不希望收到大量已在 SVN 中创建的提交的电子邮件。

我还想知道当我可以阻止已经存在的提交的电子邮件泛滥时的用例。

我打算从接收后挂钩执行此操作,并且我正在使用 gitolite。