我是一名程序员,在不久的将来,我将与一个网页/模板设计师一起在几个项目上工作。您如何看待我的开发工作流程设置?你有什么优化技巧吗?
为一个特定项目设置
- 整个项目托管在 github 上。
- 该项目是一个在 linux 操作系统上运行的复杂 web 应用程序(不可能在本地开发服务器上运行它,无论是在 windows 上还是在 mac 上)。
- 有 2 个分支:dev 和 master。dev 是测试服务器,master 是生产服务器。
- 除了主 github 存储库之外,设计师的计算机上还有一个本地存储库,我的计算机上一个,测试服务器上的一个,生产服务器上的一个。
- 我在本地开发(在 Windows 上)。在开发过程中,有一个自动同步脚本,它会自动将我通过 FTP 编辑的所有文件上传到测试服务器,这样我就可以立即检查我的更改是否有效。
- 设计师也在本地开发(在 Mac 上),他还将拥有一个自动同步脚本,通过 FTP 自动将他的所有更改上传到测试服务器,但他只能访问一个特殊的“布局”目录,其中所有模板和静态文件(图像,css,js,...)位于。他还需要每隔几分钟检查一次他的更改或新功能是否有效。
- 每当设计师或我成功完成并在测试服务器上测试了新功能时,我们就会将我们的更改从本地 dev-branch 推送到 github 上的远程 dev-branch。到目前为止,测试服务器没有被 git 触及。
- 每天早上都有一个 cronjob,它会删除整个 testserver 目录,然后对托管在 github 上的远程存储库的 dev-branch 执行“git clone”。这样测试服务器就有了所有新的提交。
- 设计师和我必须每天早上使用远程 github 存储库“git pull”彼此的最新更新,然后再进行任何进一步的开发。
- 一旦某个功能在测试服务器上运行良好,我会将“dev”分支合并到“master”并将 master 提交到 github。
- 然后我们有一个部署,将主分支从 github 拉到生产服务器。
问题
您通常如何处理无法为每个项目成员拥有本地开发服务器的情况(因为应用程序无法在本地运行)?拥有一个测试服务器似乎真的不专业,每个人都可以通过 ftp 上传文件来尝试他们的东西,因为很容易发生有人覆盖别人的文件,所以测试会失败。有没有本地测试服务器时如何在团队中开发的最佳实践示例?
提前感谢您的帮助,并对我的英语感到抱歉,它不是我的母语。