gpt4 book ai didi

在网络根目录之外有多个目录的 Git 仓库?

转载 作者:太空狗 更新时间:2023-10-29 14:39:39 32 4
gpt4 key购买 nike

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

老方法

/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

最佳答案

我建议不要将这两个目录移出存储库,而是将网络根内容移到 www 目录中。我会这样做的方式如下所示:

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

    # 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 符号链接(symbolic link)到它的原始位置。我个人更喜欢第二种选择:

    # 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 的历史记录中)。这还有一个好处,就是您根本不需要更改远程仓库。只需将您的更改推送到那里即可。

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

关于在网络根目录之外有多个目录的 Git 仓库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735725/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com