我看过很多关于在文档根目录和钩子上使用裸Git repos来推送部署网站的条目,但我需要保持主机对网站所做的更改,并从本地副本中提取我的更改。这是因为我使用主机的一键安装安装了Prestashop CMS,它还管理有用的次要更新,克隆和备份恢复。使用挂钩进行推送部署假定我的主站位于非现场,因此我需要的方法似乎是颠倒的。另外,由于MySQL数据库的存在,在没有摆弄的情况下,在Bitbucket等本地保存master并不是那么方便。
我的计划是......(来自www /子文件夹)
$> git --git-dir=../../git/prestashop.git --work-tree=. init
但我之前没有这样做或读过有关的其他人。管理生产站点是一种安全的方法吗? .git文件不是公共的,我可以提取更改而不是推送它们并使用SSH来发出git命令。
或者,如果我使用流程并使用裸仓库方法,是否可以将主机的次要软件更新保留给Prestashop?
我对跟踪相当陌生,仍然有点gitslexic并习惯了我的旧学校ftp工作流程,所以任何建议都会非常受欢迎。
答案 0 :(得分:1)
您可能希望考虑使用capistrano部署您的网站 - 它将允许您以各种方式部署到网站,包括从git存储库(这是最常见的方式)和包括任何类型的工作流程,包括远程拉动。
同样,没有理由你不能像你说的那样做,我经常从一个非常基本的拉动策略开始,然后一旦我知道需要维护项目就转移到capistrano。
答案 1 :(得分:0)
我通常更喜欢将repo放在一个单独的目录和rsync中,或者类似于生产目录,尽管我已经直接使用了git目录,因为你正在考虑它,没有任何真正的麻烦。我遇到的唯一问题是配置文件进入仓库并用dev替换生产配置。这可以通过.gitignore或类似的方法轻松避免。