问题标签 [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 post-receive 钩子并防止标签推送
在我的 GIT 的 post-receive 挂钩中,如果推送标签,我需要避免执行某些代码。
我尝试使用环境变量 $refname 但它看起来是空的。
任何想法?
谢谢
随机化
git - 使用 post receive hook 推送到 DEV 服务器效果很好 - 但随后无法提交远程更改
对 git 来说非常新,经过一番阅读后,我们设置了以下工作流程:
Github 仓库
本地存储库(工作站和笔记本电脑)
开发服务器 - 将接收钩子从裸仓库推送到提供文件的目录
这一直很好,但今天我想提交在开发服务器上所做的更改,然后将它们拉回本地。
但是当我尝试暂存并提交更改时,我收到了错误:“致命:不是 git 存储库......”
我想我明白为什么(因为包含所有文件的目录不是 git repo)但是我将如何在 DEV 服务器上提交更改并将它们拉回本地?
任何帮助将不胜感激 - 我是一名设计师,所以你可能不得不简单地解释一下。
干杯
本
macos - 在 OS X 中通过 HTTP 进行 Git 后接收
我的设置是:
1. 用于 Git 存储的 OS X 运行 apache 服务器。
2. 我的 Git 项目目录在这里:/Library/WebServer/Documents/CI
3. 我遵循了这个教程:http ://www.pkgbox.org/wordpress/2011/08/setting-up-a-git -server-on-macos-x-lion/并通过 HTTP
4 设置 Git 访问。我的 gitrepo.conf 如下:
5. HTTP 身份验证工作正常,我有不同的用户和不同的组,一切正常。
我的问题是: 我希望能够在我的 git 中使用 post-receive 钩子。我读过这个问题:Git post-receive hook not working 而我从那里得到的是我需要设置 SMART HTTP。不幸的是,这个链接: http ://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html get's me 404。
我在这里读过:http: //progit.org/2010/03/04/smart-http.html但我真的是设置服务器的新手,我不明白我应该做什么......你能为我提供激活 GIT 钩子的有效配置吗?
建议的解决方案 更改为 SMART HTTP。
这是我当前的 gitrepo.conf
我已更改 /etc/hosts 以将 ciserver.smt 添加为指向 127.0.0.1 现在我无法发出此请求:
我越来越:
我还是做错了什么?
git - 如果第二次推送仅从第一次推送开始快进,并发 git 推送是否总是安全的?
我想自动将 post-receive 钩子中的提交从我们 LAN 上的中央仓库推送到云中的另一个中央仓库。LAN 存储库是使用git clone --mirror git@cloud:/path/to/repo
或等效命令创建的。
因为提交的文件相对于我们的上游带宽来说会很大,所以完全有可能发生这样的事情:
- Alice 发起对 LAN 存储库的推送。
- 当 post-receive 钩子运行时,Bill 从 LAN 存储库中提取。
- LAN 存储库正在推送到云存储库。
- 这也意味着 Bill 的本地仓库包含 Alice 推送的提交。通过测试确认。
- Bill 启动了对 LAN 存储库的推送。
- Bill 的推送是 Alice 推送的快进,因此 LAN repo 将接受它。
当 LAN repo 的 post-receive 钩子执行时,将启动从 LAN repo 到云 repo 的第二次推送,并且两者将同时运行。
我不担心 git 对象。最坏的情况是两个推送都从 Alice 的推送中上传所有对象,但据我了解 git 的内部结构,这无关紧要。
我担心裁判。假设 Alice 使用慢得多的连接进行推送,因此 Bill 的推送首先完成。假设数据包丢失或其他原因导致钩子从 LAN 存储库推送到 Bill 的推送云之前完成,然后钩子从 LAN 存储库推送到 Alice 的推送云。如果 Alice 和 Bill 都在推送 master 分支并且 Bill 的推送首先完成,那么 master ref 在云存储库上会是什么?我希望它是 Bill 的 HEAD,因为那是后来的推送,但我担心它会是 Alice 的 HEAD。
进一步澄清:
我意识到如果 Bill 从他的机器推送到 LAN 存储库首先完成,Alice 从她的机器到 LAN 存储库的推送将失败。在这种情况下,LAN repo 的 post-receive 钩子将不会执行。此外,请假设没有人会强制推送,所以如果 post-receive 钩子在 LAN repo 上运行,所有 ref 更改都是快进的。
git - Git:致命:执行挂钩/接收后失败
我有一个用git --bare init
.
当我推动时,我得到:
hooks/post-receive 看起来像这样:
工作树是在远程配置中设置的(路径很好,如果我 cd 进入远程并git checkout -f
检查到工作树)。
钩子上的烫发看起来像:
关于为什么钩子可能会失败的任何线索?
php - 后接收,请求 php 脚本,拉 git repo
我的网络服务器上有一个 PHP 脚本 git.php,只有几行,其中一行使用 shell_exec() 来运行
(请注意,您无法推送到网络服务器,这已禁用且无法启用。) 如果您转到 example.com/git.php,这一切都可以正常工作。脚本运行并且 repo 得到更新。(回购在另一个不相关的服务器上)
我想做的是使用我的 post-receive 钩子从我的 git 服务器更新我的 web 服务器上的 git repo。我正在使用 ssh 进行连接,所以钩子应该(并且确实有效,我已经测试过)有效,并且很确定没有权限问题。
我的问题是如何编写“接收后”脚本?
我尝试了一些没有运气的事情,我的脚本目前只有 1 行长,看起来像这样
但这无济于事。:(
有谁能帮助我吗?或者建议我可以做得更好的任何事情?提前致谢。
git - git post-receive 未执行
我已经设置了以下接收后:
这是可执行的:
因此,当我从本地机器推入它时,它应该结帐并在本地进行更改。但事实并非如此:
当地的:
之后在远程机器上:
所以它的工作树中没有测试文件
任何想法可能有什么问题?
git - 通过 curl (git) 在接收后挂钩上发送提交数据的问题
我的项目的目的是将开发人员所做的每个提交记录到 mongodb 中。我已经设置了一个
nodejs 侦听器,它将将在帖子中收到的数据持久化到 mongo。
我正在运行一个 gitolite 服务器,每次开发人员推送时,我都使用 post-receive 挂钩通过 curl 将提交发布到我的节点侦听器。
我成功地做到了这一点,除了在旧版本是旧版本的初始提交中,0000000000000000000000000000000000000000
当我尝试运行 git log 时,我得到一个无效的参数。
模棱两可的参数“8a2db961045bd4825624b16ad62e75be49dd70b6~1..8a2db961045bd4825624b16ad62e75be49dd70b6”:未知修订版或路径不在工作树中。使用 '--' 将路径与修订分开
下面是我的 bash/post-receive 脚本的摘录。
我不确定如何在我的 bash 脚本中/使用我正在使用的 git 命令来处理这个问题。
一个(懒惰的)选项是使用 git log 而不使用任何修订信息,并避免使用项目名称/git commit id 将重复的提交添加到我的集合中。但这在大型存储库上会很慢。
git - git post-receive 无法正常工作
我有以下问题。我已将“接收后”更新为 cd 到某个目录,然后将 repo 拉入以部署它,如下所示:
但是,每当我在本地机器上执行“git push origin master”时,我都会得到以下信息:
然而,当我手动 cd/var/www/site
并执行git pull origin master
它时,它工作得很好。