2

我想设置 Git,这样我就可以同时访问同一个网站的不同版本。例如,“沙盒”站点、“暂存”站点和“生产”站点。

我目前在 Windows 上安装了 Git 1.7.11,并且在我的 CentOs 5.5 VPS 上运行了 Git。在本地,我有 2 个分支,“master”和“dev”。远程我有 2 个分支,“master”和“dev”。

我已经按照以下教程展示了如何使用 Git 管理网站,但现在觉得我相当愚蠢。我可以将文件从本地机器提交到 dev 分支或 master 分支到远程机器,然后使用更新后挂钩将这些文件签出到我的 Apache 'htdocs' 目录中。这很好用,当我切换分支时,文件“更改”。

但是,我希望同时访问这两个版本,这样我就可以运行一个站点,而客户可以查看同一站点的暂存版本我该怎么做呢?之后我打算使用 Git 将 staging / dev 合并到 master 中。

这是最好的方法吗?更新后挂钩中的结帐?

GIT_WORK_TREE=/htdocs/production git checkout master -f
GIT_WORK_TREE=/htdocs/staging git checkout dev -f
4

2 回答 2

0
于 2012-10-05T06:13:58.673 回答
0

这可能对你关于 Git 的问题没有帮助,但我不喜欢这种 web 开发中的工作流程,在我看来,有一种方法需要更多的工作,但作为交换,它更灵活并且可靠。

我只会标记一个裸露的公共存储库,其中所有提交都通过推送和获取(就像您正在使用的具有钩子一样),但没有任何钩子。然后,我将在远程服务器上有 2 个项目目录:一个用于 dev,一个用于 master;两者都使用克隆的非裸 git 存储库(每个都有一个 .git 文件夹)。因此,您的 Web 服务器上将有 1 个裸存储库(或者它可以在任何服务器上)和 2 个非裸存储库。

在这种情况下,您可以在本地推送您想要的所有内容,Web 项目目录中的工作目录只会在您决定拉取时更改。如果出现与项目环境相关的错误,则可以直接在远程服务器的项目目录上进行快速更改,这具有额外的好处,您可以提交修复并将其轻松推回。

通过多个远程项目目录(和 url),您可以在同一台服务器上同时拥有多个项目状态。

于 2012-10-05T07:56:55.687 回答