我是程序员,在不久的将来,我将与几个项目的网络/模板设计师一起工作。您如何看待我的开发工作流程设置?你有任何优化技巧吗?
一个特定项目的设置
- 整个项目托管在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上传文件来尝试他们的东西,因为很容易发生有人覆盖别人的文件,所以测试将失败。在没有本地测试服务器的情况下,是否有一个如何在团队中进行开发的最佳实践示例?
先谢谢你的帮助,抱歉我的英语,不是我的母语。