问题标签 [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 - git checkout 裸露在 post-receive 中的子模块
如何在包含子模块的接收后挂钩中签出服务器上的裸存储库?
我目前将此作为接收后挂钩:
但是这样子模块不会被初始化。
我尝试为测试手册执行此操作:
submodule update
命令失败并显示以下错误消息:
这种行为已经(未回答)在这里受到质疑:Git submodules with separate work_tree
如果它们已经在那里,它不会重新初始化它们也会很好。
git - git push 后使用 post-receive 挂钩后的目录权限
我意识到有很多关于此的帖子,但我怀疑部分问题是我可能没有正确运行 apache。
在查看之前,core.filemode
我是否首先需要使用相同的用户/组获取本地和服务器文件/目录?
例如,我读过一些关于以用户身份运行 apache 的内容——这是一种更好的设置方式吗?
php - Git Post-Receive Hook 不一致地添加更改
我正在尝试编写一个接收后挂钩,它将拉入推送到 bitbucket 帐户的所有新分支。然后,如果推送这些更改的人是特定开发站点的指定用户,则应自动签出该分支。
这是代码:
问题是这样的:
它并不总是有效!有时即使应该签出分支,它也不会签出。此外,有时它在签出新分支时会留下文件。这导致 git 说一大堆文件被修改了,这些文件不在它所在的分支中。
请帮忙!很卡。
谢谢
php - 寻找一种运行 php git post-recieve 挂钩的安全方法
我有一个执行 git pull 的钩子,但是当它需要写入添加的文件时它会失败。它操作的用户是 apache,当授予它写权限时(通过将 apache 添加到具有写权限的组),它可以很好地执行 git pull。
我想出了一些解决方案...
- 将 apache 保留在具有写权限的组中(感觉不安全)
- 将文件的所有权更改为 apache(不安全和 hacky)
- 使用 sudo (但这需要存储密码或没有密码)
- 在 git pull 执行之前和之后执行 chmod 添加写入 apache (hacky)
然而,所有这些似乎都是不安全/骇人听闻的解决方案。
请分享您用来解决这些问题的任何建议或方法。我很想听到任何解决方案,特别是如果您必须自己跳过这个障碍。
git - 不一致的接收后挂钩失败
我已经设置了一个工作流程,在该工作流程中我推送到服务器上的一个裸仓库,然后一个接收后挂钩将文件复制到提供该站点的文件夹中。
但是,我发现我以这种方式设置的站点中只有 50% 实际工作,另外 50% 的 post-receive 挂钩似乎没有将任何文件复制到站点目录中。
删除服务器上的所有内容并重新启动通常可以解决问题,但我想知道是否有技巧可以让这些更可靠地工作,或者是否有快速解决问题的方法 - 目前我:
- 检查 post-receive 钩子中的路径是否正确
- 确保接收后挂钩是可执行文件
一旦我更新/检查了这些东西,我还有什么需要做的吗?
git - Git post在另一台计算机上接收挂钩
我已经建立了我的网站,这样当我在本地完成工作和测试等时,我可以像这样实时推送更改:
git push khwp
这很好用。我的本地文件位于 Dropbox 文件夹中,因此我也可以在笔记本电脑上处理它们。然而,在后者上,上述命令不起作用。我可以很好地添加和提交文件,但由于某种原因 push 命令不起作用。
我怎样才能解决这个问题?
我可能应该补充一点,我是 git 的新手,但我想你已经明白了......
编辑:这是我得到的错误:
没有企业防火墙,没有“推送 url”。密钥配置没有问题(我可以在没有密码的情况下通过 ssh 进入服务器)并且用户名和电子邮件也已设置。
git - 如何测试 git 钩子
由于“测试”是 Git 钩子的常见用途,我的问题很难搜索。
我正在编写一个相当复杂的 git post-receive 钩子,并想知道测试它的最佳方法是什么。目前我的流程是:
- 在一个虚拟的“远程”仓库中对 post-receive 进行更改
- 更改虚拟本地存储库
- 在虚拟本地仓库中提交更改
- 将更改推送到虚拟远程仓库
有没有更简单的方法来测试这个?理想情况下,它看起来像:
- 对虚拟回购中的接收后进行更改
- 发出“魔术”命令来测试接收后
也许我可以“重新发布”以前的推送,或者让远程仓库就像它刚刚收到带有特定哈希的推送一样?
git - Git:了解接收后
最近从 SVN 迁移后,我对 Git 世界还很陌生,我正试图理解这个post-receive
钩子。
希望我说这是一个服务器端钩子是正确的,但是我将如何使用该post-receive
钩子在客户端运行命令,或者是否有另一个钩子来实现这一点?
例如。
post-receive
钩子在服务器上运行。向客户端/提交者发送命令并且该命令在他们的计算机上运行(例如收到回显提交。)
对不起,如果我完全错了 - 我是 Git 新手。
windows - 在 Windows 上设置 git repo post-receive
我想在我的 Windows 服务器上设置 git 部署,但是我在从 git post-receive 事件更改 director 时遇到了一些麻烦。我收到“没有这样的文件或目录”错误。
我有以下设置:
- Windows 共享上的 git 存储库 //share/git/repo/
接收后配置如下:
#!/bin/shecho "构建 Arla 解决方案"
cd /c/构建
取消设置 GIT_DIR
git pull 起源大师
echo "做一些后期构建操作..."
当我对存储库进行提交/推送时,如果在线失败:cd C:/Builds
.
我在 Linux 服务器 (VPS) 上设置了类似的东西,没有任何问题。我认为问题在于我如何格式化更改目录。
有什么建议么?
git - 在 GIT 存储库创建期间不要充斥着收到后的电子邮件
我试图在第一次创建 GIT 存储库时阻止大量电子邮件。例如,假设我正在从 SVN 迁移到 GIT,并且我不希望收到大量已在 SVN 中创建的提交的电子邮件。
我还想知道当我可以阻止已经存在的提交的电子邮件泛滥时的用例。
我打算从接收后挂钩执行此操作,并且我正在使用 gitolite。