我设置了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的新手并且是第一次建立工作流程。
答案 0 :(得分:0)
你是否确信这个钩子没有射击,或者它是否会射击并且不能达到预期的效果?
post-receive hook响应了推送发生的事实。只有当钩子显式查找时,它才依赖于推送的或哪个分支。
但是,您使用checkout
的方式并不一定会检查刚刚推送的提交。 (如果您一次推送多个分支,那将如何工作?)在默认设置中,它会检出master
分支,因为HEAD
文件指向的是
您可以尝试将HEAD
移动到要在该服务器上签出的分支,或者可以修改挂钩以明确检出要在该服务器上部署的分支。 (虽然两者都可能有效,但后者可能更安全。)