Git远程遥控

我想弄清楚如何使用git部署一个网站。

理论上有三个联系:

  1. [本地机器]我的本地机器进行编码
  2. [gitolite服务器]使用gitolite的私人回购托pipe
  3. [networking服务器] VPS托pipe与克隆 – 背叛

git push我的代码从[本地机器][gitolite服务器],但我怎么把我的代码从[gitolite]到我的[web服务器]

我想自动化,所以我所要做的就是完成一个git push

[gitolate服务器] repo上设置钩子以运行post-updatepost-receive脚本的最佳方法是? 但是因为这是一个简单的回购,这意味着我需要从[gitolite服务器]运行[web服务器]的克隆回购的git push ,因为我不能运行git pull因为--bare repo doesn没有工作的树?

对不起,并提前感谢

WD

一个解决scheme是:

  1. 在gitolite服务器上放置一个post-receive钩子来自动推送到web服务器
  2. 在Web服务器上放置一个post-receive hook来部署代码(我通常使用git归档)

然后你推到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钩子的人都可以窃取这些值。