gpt4 book ai didi

git - 从 Git 存储库部署 PHP 网站

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

我正在尝试全神贯注于 Git 并使用(或不使用)它来部署网站。我一直在谷歌搜索、搜索和阅读,但找不到我的具体案例或疑虑的答案。我仍处于执行此操作的计划阶段,但希望从一开始就把它做好,并找到适合我的工作流程。我会尽量把情况解释清楚:

我有一个远程 VPS,它在 www.example.com 上运行我的实时网站,在 dev.example.com 上运行开发版本(它们位于/var/www/example/htdocs/和/var/www/example/子域/开发/)。

开发是从/opt/git/example.git/中的裸存储库运行的。裸仓库中有一个 master 和 development 分支。我和其他开发人员都在我们的本地机器上克隆了这个存储库。我们从开发分支中 pull 出来并从那里开始工作。这个想法是 dev.example.com 拥有来自开发分支的最新代码,一旦经过适当测试,我们就 merge 到 master 中,添加一个标签并更新 example.com(基本上是这个 git flow )。

我在 Git IRC channel 上找到的第一种方法是使用 Hook 来更新存储库,但这感觉非常有限,有时也是不需要的,我想在推送后自己在服务器上运行一个命令,更新开发环境。另一个命令(或 shell 脚本)将在开发 merge 后从 master 分支更新实时站点)。我还找到了 Capistrano,但此刻我似乎有点难以理解。

在阅读时,我发现很多人建议在远程创建两个克隆:一个用于实时站点,一个用于开发站点,必要时 pull 入分支。然而,这也使版本控制文件可以通过网络访问,这是我不想要的。理想情况下,我想要一个没有任何 git 文件或文件夹的“干净”副本。

我还找到了一种使用 git archive 的方法,但是从我的裸仓库运行 git archive 只允许我归档 master 分支。我使用命令 git archive --format=tar HEAD | 执行此操作(cd/var/www/example/htdocs/&& tar xf -) 在/opt/git/example.git/中。

我觉得 git archive 方法让我最接近答案,但我缺乏 Git 知识。我可以更改命令以使用分支而不是 HEAD(当我尝试使用 origin/master 而不是 HEAD 时,出现错误)?有没有人可以指出我正确的方向?

最佳答案

您可以使用任何树状结构(任何分支、标签、sha1 哈希等)作为 git 存档的参数。你不能使用 origin/master 因为你在裸仓库中并且它没有来源。您需要使用本地分支名称,例如

git archive --format=tar develop

关于git - 从 Git 存储库部署 PHP 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044583/

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