问题标签 [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 push 上硬重置
我有一个接收后挂钩脚本,位于我正在推送的远程仓库中git reset --hard
像这样的东西:
我在这里不明白的是 - 遥控器说头部现在在 XXX 但是当我登录服务器时 - 远程工作副本根本没有更新!
任何想法?
git - 需要在 post-receive 脚本中解析 refname
在我的 post-receive 钩子中,我想获取用户提交的分支,存储在一个变量中,并将其传递给 Web 服务(Hudson 构建系统)。我可以为此使用传递给 STDIN 的 refname 吗?如果是这样,我该如何得到它?我试过
$3
了,但这似乎不起作用。
另外,添加行
只显示一个空白。
谢谢!
python - 为什么我的 post-receive 钩子不能运行 virtualenv 源命令?
我有一个作为用户“git”运行的接收后挂钩。我有一个 git 可读的 virtualenv /python/ve//bin/activate。跑步:
适用于 git 组中的用户。
当它在推送后作为接收后挂钩运行时,我收到错误“源:未找到”。
我不知道还能去哪里看 - 任何提示都非常感谢。
git - 如何在 gitosis 中跟踪接收后挂钩
有没有办法通过 gitosis-admin 管理接收后挂钩,以便可以跟踪对它的更改?
我在一个远程服务器上 gitosis,有几个可以推送到的存储库。这 2 个存储库是通过 gitosis-admin 设置的,每个存储库都有一个不同的 post-receive 钩子,它是通过 ssh'ing 到远程服务器手动设置的。让我感到震惊的是,这些应该在某个地方的 git 中,以便可以跟踪对它们的任何更改。
git - 想要 Git 发布接收钩子来检测某些文件类型
每当某种类型的文件 *.hbm.xml 被推送到服务器时,我希望我的post-receive
钩子运行某个脚本。动机:每当 NHibernate 文件发生更改时,我都想修改我的数据库架构版本号。
谢谢!
git - 希望 git post 接收钩子进行新的提交和推送
我希望我的 post-receive 挂钩负责在某些条件下更新 repo 本身中的版本文件。所以,假设我的存储库中有一个文件 version.txt,我希望发布接收挂钩来更新 version.txt 中的版本字符串。
这将意味着再次推动回购。这可能吗?
谢谢!
git - 从 Windows 上的 GIT Bash 推送时未调用 post-recieve
嘿,我在远程存储库上启用了接收后挂钩,在从 Linux 机器向上游推送标签\提交时工作正常。(虽然我在推的时候必须 sudo )。但是 - 从 Windows Git 客户端推送时,不会调用脚本。有任何想法吗 ?
谢谢,冉
git - 无法从 Git 接收后挂钩中检测到分支
我在远程 repo 上有一个 post receive 钩子设置,它试图确定传入推送的分支名称,如下所示:
不过,我发现,无论我从 $branch 变量推送的哪个分支都设置为“master”。
有任何想法吗?
git - 在镜像仓库中调用 git 中的 post-receive 钩子
我正在使用 trac,我需要调用安装了 trac 的接收后挂钩服务器。主存储库位于 github,所以我将 github 存储库克隆到本地服务器
git clone --mirror ** **
当我跑步时
git fetch --all
我想要,那个 git 会运行 post-receive 钩子。可能吗?
git - Git:使推送到非裸存储库安全
我可以使用 git 专家的一些指导,以确保对非裸存储库的推送操作安全。基本上我有一个关于如何做到这一点的计划,并且可以使用一些关于该计划是否合理的建议:)
通常,当您在 git 中推送到非裸存储库时,其工作副本和索引不会更新。正如我发现的那样,如果您忘记稍后手动更新它们,这可能会导致严重的问题!
在我们的小组中,我们有一些“中央”存储库,人们可以从中克隆和推回,但许多人也希望能够克隆他们的克隆,并根据需要以真正的分布式方式在它们之间推/拉。为了确保安全,我想确保通过“clone”或“init”创建的每个存储库都有一个自动安装的 post-receive 钩子,它将在推送操作后更新工作目录和索引以与新的头。
我发现我可以通过在 hooks 子目录中使用我的 post-receive 钩子创建一个模板目录来实现这一点,然后让我组中的每个人都执行以下操作:
目前我的 post-receive 钩子看起来像这样:
这似乎可以按预期工作,但我对 checkout 命令有一些不确定性。为了将工作目录和索引与 HEAD 中的状态同步,“git checkout -f HEAD”和“git reset --hard HEAD”是否等效?
我问是因为虽然我知道“git reset --hard HEAD”会做我想做的事,但在接收后挂钩中使用它会在我的测试中大大减慢推送操作(它似乎重新检查了所有文件,无论文件在工作目录中是脏的还是干净的)。“git checkout -f HEAD”似乎可以更快地完成同样的事情(给我一个干净的工作目录和与 HEAD 同步的索引),但考虑到 checkout 命令倾向于即时执行,我有点紧张与未提交的工作目录更改合并。这个命令真的会给我一个工作目录和索引,在所有情况下都与 HEAD 中的状态完全匹配(包括,例如,文件删除、重命名等)?
提前感谢您的任何建议!