理论上有三个联系:
我git push我的代码从[本地机器]到[gitolite服务器],但我怎么把我的代码从[gitolite]到我的[web服务器]
我想自动化,所以我所要做的就是完成一个git push 。
在[gitolate服务器] repo上设置钩子以运行post-update或post-receive脚本的最佳方法是? 但是因为这是一个简单的回购,这意味着我需要从[gitolite服务器]运行到[web服务器]的克隆回购的git push ,因为我不能运行git pull因为--bare repo doesn没有工作的树?
对不起,并提前感谢
WD
一个解决scheme是:
然后你推到gitolite,它推到networking服务器,然后部署你的新代码。 完成!
或者,你可以把Web服务器上的git repo放在等式之外,并让gitolite post-receive hook做类似的事情:
git archive --format=tar master | (ssh -i $KEYFILE user@webserver tar -x -C /dest/dir )
这将直接从gitolite挂钩部署。 这个假设你可以以'user'的身份login到web服务器,在$ KEYFILE中有一个私有的ssh密钥,可能会有一些安全分歧,因为任何可以读取gitolite钩子的人都可以窃取这些值。