将非主分支推送到远程时,Git post-receive无法正常工作

时间:2018-03-09 15:55:35

标签: git workflow branch git-remote

我设置了Git,而且我遇到了我的分支机构的问题。

我的目的是拥有三个版本的网站:一个是本地环境,另一个是登台环境,最后是生产网站

我已在本地上设置了回购,这是主分支。我成功地通过SSH设置了一个远程控制器,并将文件推送到登台服务器上的裸仓库,触发后接收,将这些文件移动到public_html目录。

当我创建新分支并将其推送到指向 prod服务器新远程时,会出现问题。这些文件被推送到prod服务器上的裸仓库,但似乎没有触发post-receive,也没有将文件移动到public_html目录。

收到后的内容如下:

#!/bin/sh git --work-tree=/home/user/public_html --git-dir=/home/user/wpstaging.git checkout -f

我的研究不足,但我相信它没有触发后接收钩子的原因是因为我不再在主分支上

我在做一些明显错误的事吗?我是Git的新手并且是第一次建立工作流程。

1 个答案:

答案 0 :(得分:0)

你是否确信这个钩子没有射击,或者它是否会射击并且不能达到预期的效果?

post-receive hook响应了推送发生的事实。只有当钩子显式查找时,它才依赖于推送的哪个分支。

但是,您使用checkout的方式并不一定会检查刚刚推送的提交。 (如果您一次推送多个分支,那将如何工作?)在默认设置中,它会检出master分支,因为HEAD文件指向的是

您可以尝试将HEAD移动到要在该服务器上签出的分支,或者可以修改挂钩以明确检出要在该服务器上部署的分支。 (虽然两者都可能有效,但后者可能更安全。)