2

我开始将 git 与我的 .git 目录以及 Web 根目录中的所有其他内容一起使用。进一步阅读后,这似乎是一个不好的做法。我现在将我的应用程序和系统文件夹放在 Web 根目录之外。我的 web 根目录中唯一剩下的就是一个索引文件和一个用于图像、js 和 css 的资产文件夹。

老路

/var/www/assets
/var/www/application
/var/www/system
/var/www/.git

新方法(不太确定 .git 应该放在哪里?)

/var/www/assets
/var/application
/var/system

在很容易设置 git 之前。我创建了 repo,它找到了所有文件,因为它们都在同一个目录中。现在,我不太确定 .git 存储库应该驻留在新结构中的哪个位置。如果我将它添加到 /var/www 它会看到 assets 文件夹,但不会看到其他任何东西。

我想用 git 管理所有三个目录。如何将所有目录包含到 repo 中。或者,git 是否有另一种方式来处理此类实例?我在这个网站上发现了另一个类似的问题,但我无法理解。

另外,在我的远程仓库中,我会像这样设置它。我还没有移动任何目录。我一直试图让它首先在本地工作。

var/www/assets
var/application
var/system
var/git/.git
4

2 回答 2

3

我建议不要将这两个目录移出 repo,而是将 web 根目录移到一个www目录中。我这样做的方式如下:

  1. 创建一个新的 Web 根目录:

    # from /var/www
    mkdir www
    git mv assets www
    git mv index* *html www
    git commit
    

    所以,目前的临时结构是:

    /var/www/www/assets
    /var/www/system
    /var/www/application
    /var/www/.git
    
  2. 此时您有两个选择:编辑您的服务器配置以创建/var/www/www新的 Web 根目录。或者将整个东西移到其他地方并将 webroot 符号链接到其原始位置。我个人更喜欢第二种选择:

    # from /var/www
    cd ..
    mv www /usr/local/mywebapp
    ln -s /usr/local/mywebapp/www www
    

    现在你的文件夹结构是:

    /usr/local/mywebapp/www/assets
    /usr/local/mywebapp/system
    /usr/local/mywebapp/application
    /usr/local/mywebapp/.git
    

    但是网络服务器只看到:

    /var/www/assets
    /var/www/index.html
    

这样做可以确保您的项目始终处于 git 控制之下,而不会在 git 之外发生任何更改(因此不会记录在 git 的历史记录中)。这还具有您根本不需要更改远程存储库的优点。只需将您的更改推送到那里。

如果您希望其他人可以使用符号链接方法正确安装您的应用程序,您始终可以提供一个 shell 脚本来为他们​​创建符号链接并确保服务器配置正确。

于 2012-12-06T02:16:10.277 回答
1

最好将源代码和运行时分开。

将 git 和 source 放在其他地方。有一个从源代码构建的构建脚本(即从 git checkout 构建)并将构建的输出传输到 web 目录。

所以来源可能看起来像:

/var/src/assets
/var/src/application
/var/src/system
/var/src/.git

然后构建脚本只会将构建的输出复制到/var/www

于 2012-12-06T02:09:49.963 回答