测试git分支本地Web服务器


Test git branch local webserver

我的web根文件夹中有一个PHP应用程序(例如:/www/project/)。我想在我的项目中使用git,但我对它的实用性非常困惑。例如:

如果我创建一个分支NewContactPage,那么我有两个分支:masterNewContactPage。我对文件contact.php进行了一些更改(例如),但在哪里可以测试此更改并将其与master contact.php文件进行比较?我只有一个webroot文件夹。

如果我想测试一些新功能,我是否必须将所有项目归档到另一个webroot文件夹?真正地

====================编辑更新问题======

我想我没有很好地解释。我再举一个例子。

我的本地开发环境有一个Apache web服务器,其中的webroot是/user/12345/project/www可以吗?

在这个目录中,我得到了我的项目(使用git),例如,我的主要分支是develop。所以当我转到http://localhost时,我可以看到develop的index.php,好吗?

好吧,假设我遵循git-flow最佳实践,例如,我必须创建一个具有新功能的分支,该分支有一个新的contact.php页面。所以我创建了分支contactNEW,在这个分支中,我用一些代码编辑contact.php。

因此,如果我转到http://localhost/contact.php(例如),我将看到新的更改(分支contactNEW)。现在,如果我想(与web浏览器)直观地比较这两个文件(development/contact.php和contactNEW/contact.php),比如说按钮的颜色,该怎么办?

我必须将所有分支develop文件复制到新的web根文件夹中吗?还是最好将所有分支contactNEW文件复制到Apache的另一个webroot(例如虚拟主机)?

我想我必须通过存储库提交或撤消提交,然后刷新web浏览器,不是吗?

我不确定我是否遵循,但是的,在给定的工作副本中,一次只能"检出"一个分支。但切换分支很容易:

git checkout NewContactPage
{do some testing}
git checkout master

此外,git存储库的副本创建起来既便宜又琐碎。简单的旧cp -r <repo> <repo-copy>(假设这里是UNIX派生)就可以完成任务了。然后,您可以在回购副本中签出分支,并在完成后将其删除。

要在分支之间比较contact.php文件(无论此命令公式中的签出分支如何):

git diff master NewContactPage contact.php

如果您将git用于web应用程序,并且需要有一个不同的"测试/暂存"区域,则意味着您有:

  • 两个工作目录;它们中的每一个都是由"远程"链接的完整git存储库
  • web服务器配置中的两个条目,例如,具有两个不同的端口。它们每个都指向两个目录中的一个。通过这种方式,您可以在其中一个web服务器中测试您的开发,同时升级您的生产版本。(注意:这不一定是您的客户使用的"真正的"生产web服务器,只是"生产代码"的一个版本,这样您就可以将您的更改与之进行比较)

当然,这可以任意缩放。例如,如果你有几个开发人员,那么他们每个人都有一个单独的web服务器(端口)来浏览自己的开发(当然还有他们单独的git存储库)是有意义的。

只要一切都是本地的,并且你不需要在公司/网络边界上"部署"你的应用程序,那就是它的全部。