1

我见过很多人使用 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 项目我想有人已经弄清楚了,但我无法通过谷歌找到那么多......

解决此问题的最佳方法是什么?

我想过的方法:

  • 在不同的存储库中使用保存 cgi 和 html
  • 像这样保存网站:

    • 网站/a/html
    • 网站/a/cgi-bin/
    • ...

    然后将这些文件夹符号链接到 /var/www/{html,cgi-bin}/project 下

4

1 回答 1

0

在某些情况下,无论出于何种原因将项目集中在一个位置并将不同的位置符号链接到该位置,我在几次情况下所做的是,我为 git 及其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 看不到文件位于其他位置。

于 2014-08-18T15:19:27.330 回答