多个 Web 开发人员如何使用 git 同时在一个页面上工作?

How can multiple web devs use git to work on one page simultaneously?

我们正在考虑将 git 用于我们正在设计的新系统。

我们目前有一台生产机器和一台开发机器。
我们使用 svn 通过我们的开发提交来保持生产更新。

开发机器为每个开发人员(目前只有我们两个人)提供了我们代码库的完整副本。

文件结构如下:

html/
  dev_timmy/
    stuff/
      thing1.php
      thing2.php
  dev_johnny/
    stuff/
      thing1.php
      thing2.php

如果我们都在 thing1.php 上工作,我会更改我目录中的文件,而他也会更改他的目录中的文件。为了测试我们的更改,我们只需将 dev 目录包含在 url.

http://ourwebsite.com/dev_timmy/stuff/thing1.php
http://ourwebsite.com/dev_johnny/stuff/thing1.php

我确信拥有代码副本不是最佳解决方案。

但是我们如何在互联网上查看自己的更改
我们如何才能使 dev_timmy-based url 解析为 Timmy 正在处理的页面版本?

But how can we view our own changes on the internet?

当然首先你得把它上传到网上。 您将需要一些地方来存储您的代码(bitbucket、gthub 等)。

这些云服务有一个 Web 界面来查看您的更改以及所有历史记录。


How can we make dev_timmy-based urls resolve to the version of the page that Timmy is working on?

使用git你可以使用分支。你们每个人都有自己的分支,这将允许你们 2 同时处理相同的代码,并在需要时随时更新本地代码。

这就是分支。


另一种解决方案可能是使用与子模块相同的项目或使用 workdir,这将允许您在不同的文件夹下拥有相同的代码

git 没有什么特别之处可以帮助解决此类问题:文件必须位于磁盘上的某个位置,以便网络服务器可以分发它们。

这个问题基本上归结为工作流程。如果您希望能够独立于您的同事正在处理的代码查看您正在处理的代码,一般解决方案是拥有多个站点(单独的 Web 服务器或服务器后面的不同虚拟主机)设置不同URL秒。例如,在我们公司,我们每个人都有自己的开发虚拟机,以及我们自己的 username.company.com URL,我们可以使用它来引用托管在我们虚拟机上的代码。

通常人们将他们的 git 存储库作为其 Web 服务器的文档根目录(或虚拟主机根目录)。他们对此进行编辑和测试,同时在本地提交。

当我们完成开发后,我们会合并到一个中央存储库,并且有一个正在测试的 Web 服务器,我们可以访问该服务器,它显示了当前为测试而合并的内容。一旦被接受,它就会被合并到 master 并被推送到生产环境。