从本文中,您有一个名为“hub”的主要裸存储库。“prime”存储库和您计算机上的存储库是“hub”的克隆。
在您的情况下,您有两个“主要”存储库:一个是您的暂存区(“prime-staging”),一个是您的生产区(“prime-production”)。
结合使用文章中描述的钩子和此处描述的钩子(根据推送的分支采取特定操作),您的“prime-staging”或“prime-production”存储库将被更新。
'hub 存储库应该有两个分支:(master
或staging
)与您的登台站点production
相关联并与您的生产站点相关联。您将在 上完成所有工作master
,并将这些更改推送到“集线器”,从而允许 git 挂钩更新暂存存储库。您将在实时环境中查看这些更改,进行所需的任何更改master
并再次推送到“集线器”。一旦暂存站点看起来不错,您将执行以下操作:
git checkout production
git reset --hard master
git push origin production
现在,git hook 将看到生产分支已更新并相应地更新您的生产站点。(注意:假设集线器只是命名法,调用主存储库是标准的origin
)
所以我想在服务器上的设置是:
mkdir -p /path/to/site.git
cd /path/to/site.git #// hub
git init --bare
cd /var/www/vhosts
git clone /path/to/site.git site.com #// prime-production
git clone /path/to/site.git staging.site.com #// prime-staging
你把钩子放进去site.git
。当staging
分支更新时,更改为/var/www/vhosts/staging.site.com
并执行git pull
. 当production
分支更新为/var/www/vhosts/site.com
.