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

git - 在 git push 上硬重置

我有一个接收后挂钩脚本,位于我正在推送的远程仓库中git reset --hard

像这样的东西:

我在这里不明白的是 - 遥控器说头部现在在 XXX 但是当我登录服务器时 - 远程工作副本根本没有更新!

任何想法?

0 投票
1 回答
199 浏览

git - 需要在 post-receive 脚本中解析 refname

在我的 post-receive 钩子中,我想获取用户提交的分支,存储在一个变量中,并将其传递给 Web 服务(Hudson 构建系统)。我可以为此使用传递给 STDIN 的 refname 吗?如果是这样,我该如何得到它?我试过 $3了,但这似乎不起作用。

另外,添加行

只显示一个空白。

谢谢!

0 投票
1 回答
1168 浏览

python - 为什么我的 post-receive 钩子不能运行 virtualenv 源命令?

我有一个作为用户“git”运行的接收后挂钩。我有一个 git 可读的 virtualenv /python/ve//bin/activate。跑步:

适用于 git 组中的用户。

当它在推送后作为接收后挂钩运行时,我收到错误“源:未找到”。

我不知道还能去哪里看 - 任何提示都非常感谢。

0 投票
1 回答
490 浏览

git - 如何在 gitosis 中跟踪接收后挂钩

有没有办法通过 gitosis-admin 管理接收后挂钩,以便可以跟踪对它的更改?

我在一个远程服务器上 gitosis,有几个可以推送到的存储库。这 2 个存储库是通过 gitosis-admin 设置的,每个存储库都有一个不同的 post-receive 钩子,它是通过 ssh'ing 到远程服务器手动设置的。让我感到震惊的是,这些应该在某个地方的 git 中,以便可以跟踪对它们的任何更改。

0 投票
1 回答
352 浏览

git - 想要 Git 发布接收钩子来检测某些文件类型

每当某种类型的文件 *.hbm.xml 被推送到服务器时,我希望我的post-receive钩子运行某个脚本。动机:每当 NHibernate 文件发生更改时,我都想修改我的数据库架构版本号。

谢谢!

0 投票
2 回答
1150 浏览

git - 希望 git post 接收钩子进行新的提交和推送

我希望我的 post-receive 挂钩负责在某些条件下更新 repo 本身中的版本文件。所以,假设我的存储库中有一个文件 version.txt,我希望发布接收挂钩来更新 version.txt 中的版本字符串。

这将意味着再次推动回购。这可能吗?

谢谢!

0 投票
2 回答
108 浏览

git - 从 Windows 上的 GIT Bash 推送时未调用 post-recieve

嘿,我在远程存储库上启用了接收后挂钩,在从 Linux 机器向上游推送标签\提交时工作正常。(虽然我在推的时候必须 sudo )。但是 - 从 Windows Git 客户端推送时,不会调用脚本。有任何想法吗 ?

谢谢,冉

0 投票
5 回答
7918 浏览

git - 无法从 Git 接收后挂钩中检测到分支

我在远程 repo 上有一个 post receive 钩子设置,它试图确定传入推送的分支名称,如下所示:

不过,我发现,无论我从 $branch 变量推送的哪个分支都设置为“master”。

有任何想法吗?

0 投票
1 回答
334 浏览

git - 在镜像仓库中调用 git 中的 post-receive 钩子

我正在使用 trac,我需要调用安装了 trac 的接收后挂钩服务器。主存储库位于 github,所以我将 github 存储库克隆到本地服务器

git clone --mirror ** **

当我跑步时

git fetch --all

我想要,那个 git 会运行 post-receive 钩子。可能吗?

0 投票
2 回答
3735 浏览

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 中的状态完全匹配(包括,例如,文件删除、重命名等)?

提前感谢您的任何建议!