5

我使用 git 将源代码更改(从 GitHub 推送后dev)拉到实时网站上的 Web 应用程序。我的 .git 目录/repo 位于我的 web 根目录中(不能公开访问),就像大多数项目在构建 web 应用程序并开始使用带有 ' git init' 等的 git 时一样。这个可以吗?

通过“好的”,我的意思是我知道可能有也可能没有更好的位置来将 .git 存储库放在production服务器上并使用构建脚本进行部署或其他东西,但在你的回答中,我首先想知道它是否是“好的”,从安全、最佳实践等角度来看,我目前正在这样做。这似乎是将更改部署到实时站点并维护 git 存储库的最简单、直接的方法,并且它一直在为我工作。

如果它是“好的,但有更好的方法”,我也对这些建议感到好奇。

4

1 回答 1

9

这很好,但更好的方法是确保您的历史记录不在 Web 根目录的文件夹中。您可以使用 git 级别选项来解决此问题,让 git 知道工作目录在哪里:

git --git-dir=some/path/.git --work-tree=my/web/root/projectX pull

会更新。如果您正在编写脚本并且不想重复这些选项,您可以设置 2 个环境变量,然后您可以跳过这些选项。

您也可以将 git repo 放在其他地方,然后使用 archive 命令取出工作文件夹:

git archive | tar -xzvf

还要考虑在您的历史记录中没有任何东西,例如连接字符串或密码。让部署脚本在部署时操作这些文件。

于 2012-10-24T02:10:36.577 回答