【问题标题】:Using git to VC a live website containing files in multiple locations使用 git 来 VC 一个包含多个位置文件的实时网站
【发布时间】:2014-08-18 23:19:27
【问题描述】:
我见过很多人使用 git 直接对他们的网站进行 VC,在一些情况下,我一直在考虑这样做。但是,我无法弄清楚如何执行以下操作:
假设我在一台机器上有两个网站,html 等位于:
- /var/www/html/prj_a
- /var/www/html/prj_b
我在以下位置有 cgi 脚本:
- /var/www/cgi-bin/prj_a/
- /var/www/cgi-bin/prj_b/
所以我实际上在 /var/www/ 下有两个“并行”的 git 项目
我认为有人已经解决了这个问题,但我无法通过 google 找到那么多...
解决这个问题的最佳方法是什么?
我想过的方法:
【问题讨论】:
标签:
git
version-control
web
【解决方案1】:
我在某些情况下所做的,无论出于何种原因将项目集中在一个位置并将不同位置符号链接到该位置,我为 git 和 mount --bind 创建了一个单独的项目目录,mount --bind 下的位置(像符号链接但对 git 不可见)。
在我上面的示例中,创建符号链接 /var/www/cgi-bin/prj_a/ 到 projects/prj_a/cgi-bin/ 可能更有意义,除非服务器配置禁止符号链接,但我会坚持这个例子。
示例项目结构:
HTML code and assets
/var/www/html/prj_a
/var/www/html/prj_b
CGI-scripts
/var/www/cgi-bin/prj_a/
/var/www/cgi-bin/prj_b/
我在其他地方创建了一个目录:
projects/prj_a/
挂载其他目录
mkdir projects/prj_a/{html,cgi-bin}
mount --bind /var/www/cgi-bin/prj_a/ projects/prj_a/cgi-bin
mount --bind /var/www/html/prj_a/ projects/prj_a/html
现在我有了一个目录结构:
projects/
prj_a/
cgi-bin/ (points to /var/www/cgi-bin/prj_a/)
html/ (points to /var/www/html/prj_a/)
现在我可以使用projects/prj_a/ 作为 git 存储库。 Git 看不到文件位于其他位置。