没有使用git(hub)1 cor + 1 Web设计器的本地开发服务器进行Web应用程序开发的工作流程

时间:2013-05-21 11:44:09

标签: git github synchronization workflow

我是程序员,在不久的将来,我将与几个项目的网络/模板设计师一起工作。您如何看待我的开发工作流程设置?你有任何优化技巧吗?

一个特定项目的设置

  • 整个项目托管在github上。
  • 该项目是一个在Linux操作系统上运行的复杂Web应用程序(在本地开发服务器上运行它是不可能的,无论是在Windows上还是在mac上)。
  • 有两个分支:dev和master。 dev是测试服务器,master是高效的服务器。
  • 除了主github存储库外,设计人员的计算机上还有一个本地存储库,一个在我的计算机上,一个在testserver上,另一个在生产服务器上。
  • 我在本地开发(在Windows上)。在开发过程中,有一个自动同步脚本可以自动将我通过FTP编辑的所有文件上传到测试服务器,因此我可以立即检查我的更改是否有效。
  • 设计师也在本地开发(在Mac上),他还将有一个自动同步脚本,可以通过FTP自动将所有更改上传到测试服务器,但他只能访问特殊的#34;布局" -directory,其中包含所有模板和静态文件(images,css,js,...)。如果他的更改或新功能有效,他还需要每隔几分钟检查一次。
  • 每当设计人员或我成功完成并测试测试服务器上的新功能时,我们就会将更改从本地dev-branch推送到github上的远程dev-branch。到目前为止,git没有触及测试服务器。
  • 每天早上都有一个cronjob,删除整个testserver目录,然后执行" git clone"在github上托管的远程存储库的dev-branch。这样,testserver就拥有了所有新的提交。
  • 设计师和我必须" git pull"每天早上使用远程github存储库进行任何进一步开发之前的最新更新。
  • 一旦功能在测试服务器上运行良好,我将合并" dev"分支到#34; master"并将master提交给github。
  • 然后我们有一个部署,将主分支从github拉到生产服务器。

问题

如何处理每个项目成员都无法拥有本地开发服务器的情况(因为应用程序无法在本地运行)?有一个测试服务器似乎真的不专业,每个人都可以通过ftp上传文件来尝试他们的东西,因为很容易发生有人覆盖别人的文件,所以测试将失败。在没有本地测试服务器的情况下,是否有一个如何在团队中进行开发的最佳实践示例?

先谢谢你的帮助,抱歉我的英语,不是我的母语。

2 个答案:

答案 0 :(得分:1)

Git是一个分布式版本控制系统,因此当所有正在处理项目的人都有自己的开发环境时,它最有效。我个人不建议将Git用于您在单个服务器上实际测试应用程序的项目。我建议您使用集中式版本控制系统,例如Subversion。不幸的是,通过使用subversion,您将无法在Github上托管存储库(您必须使用像Git-SVN这样的系统,这会有点复杂)

答案 1 :(得分:0)

我会这样做:

  1. 在github上托管的中央回购
  2. 每个团队成员都有一个本地虚拟机,由Vagrant管理。
  3. 有一个临时/测试服务器,它位于开发分支的HEAD。
  4. 有一个生产服务器位于主分支的HEAD。
  5. 当您开始使用新功能时,您可以根据主人制作分支。一旦它在您的本地计算机上按预期工作,您可以提交它并将其合并到dev并推送到github。每次推送新代码时都有一个更新测试服务器的钩子通常很好。

    一旦该功能通过测试,您就可以将功能分支合并到主服务器并将其推送到您的生产环境。

    如果你想围绕创建功能,合并到分支和执行标记版本等过程,那么git-flow是一个不错的选择。