用于实时站点部署的Git:如何从实时版本获取文件?

时间:2013-01-14 13:45:17

标签: git git-push git-pull

从我的工作站,我可以“修改”到我服务器上的git裸存储库,其中包含运行“git checkout -f”的Hook,因此我可以通过Git部署我的网站。

问题是我网站的用户可以上传文件(如图片)。没有这些文件,网站无法正常工作。所以我的问题是:如何在实时版本上对我的工作站进行修改?(如用户上传的文件)。

**编辑:有关设置此配置的步骤的一些详细信息:**

  

在已包含该站点的服务器上:

$ cd /home/website/www
$ git init
$ git add *
$ git commit -m 'First commit !'
     

...然后创建一个裸存储库......

$ cd /home/website
$ mkdir www.git 
$ cd www.git
$ git init --bare
     

...然后设置挂钩stuf ...

$ git config core.bare false
$ git config core.worktree /home/website/www
$ git config receive.denycurrentbranch ignore
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/home/site/www git checkout -f  
     

...然后提交裸存储库:

$ git add /home/website/www
$ git commit -m "First commit of the bare repository"   On my workstation, on a new folder, to get the whole directory :

$ mkdir /Users/me/Sites/website/
$ git init
$ git remote add live ssh://root@myserver.com/home/website/www.git
$ git pull live master
     

然后它有效。如果我修改我的工作站上的文件,并想制作   他们活着,我只需要“git push live master”。

1 个答案:

答案 0 :(得分:0)

我不建议将这些图像提交回裸仓库(如果这些图像很大或很多,那么裸仓库的大小很快就会变得非常重要,无法轻松克隆)

但是您可以使用钩子将这些图像复制回某些共享目录中,然后可以从工作站访问(并且您可以rsync,以便只获取增量)。
基本上,我建议不使用git来恢复这些图像。