我想建立Git,以便我可以有不同版本的同一网站可同时访问。例如,一个“沙箱”站点,一个“分期”站点和一个“生产”站点。
我目前在Windows上安装了Git 1.7.11,在CentOS5.5VPS上运行了Git。在当地,我有两个分支,‘主人’和‘开发’。远程我有两个分支,‘主人’和‘开发’。
我遵循了下面的教程演示如何使用Git管理网站,但现在我觉得我是相当愚蠢。我可以将文件从我的本地计算机提交到开发分支或主分支到远程计算机,这些文件都是通过将更新后的钩子放到Apache 'htdocs‘目录中签出的。这很好用,当我切换分支文件“更改”时。
但是,我希望两个版本都可以同时访问,这样我就可以运行一个站点,而客户端可以检查同一站点的暂存版本。我该怎么做?之后,我计划使用Git将暂存/开发合并到master中。
这是最好的方法吗?在更新后挂钩中结帐?
GIT_WORK_TREE=/htdocs/production git checkout master -f
GIT_WORK_TREE=/htdocs/staging git checkout dev -f发布于 2012-10-05 07:56:55
这可能对你关于Git的问题没有什么帮助,但是我不喜欢web开发中的这种工作流,因为在我看来,有一种方式需要更多的工作,但作为交换,它更灵活、更可靠。
我只是标记一个裸露的公共存储库,所有提交都通过推送和获取(就像您正在使用的有钩子一样),但是没有任何钩子。然后,我将在远程服务器上有两个项目目录:一个用于dev,一个用于主目录;两个目录都使用克隆的、非裸的git存储库(每个目录都有一个.git文件夹)。因此,您将在web服务器上拥有1个裸存储库(或者可以位于任何服务器上)和2个非裸存储库。
在这种情况下,您可以在本地推送所有您想要的东西,您的web项目目录中的工作目录只有在您决定拉动时才会改变。如果出现与项目环境有关的错误,则可以直接对远程服务器的项目目录进行快速更改,这样做有更大的好处,您可以很容易地提交修复程序并将其推回。
使用多个远程项目目录(和urls),您可以在同一服务器上同时拥有多个项目状态。
发布于 2012-10-05 06:13:58
更新后钩子中的签出将有效,但您可能也需要定义GIT_DIR。
请参见:
这将确保git命令知道git的位置。
https://stackoverflow.com/questions/12732851
复制相似问题