1

从我的工作站,我可以将修改“推送”到我服务器上的一个 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

...然后设置挂钩的东西...

$ 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”。

4

1 回答 1

0

我不建议将这些图像提交回裸存储库(如果这些图像很大或很多,裸存储库的大小可能很快变得太重要而无法轻松克隆)

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

于 2013-01-15T07:55:42.547 回答