使用git(hub)1编码器+;1名网页设计师

使用git(hub)1编码器+;1名网页设计师,git,github,synchronization,workflow,Git,Github,Synchronization,Workflow,我是一名程序员,在不久的将来,我将与一名web/模板设计师合作完成几个项目。您认为我的开发工作流程设置如何?你有什么优化建议吗 一个特定项目的设置 整个项目都托管在github上 该项目是一个在linux操作系统上运行的复杂Web应用程序(无论是在windows还是mac上,都不可能在本地开发服务器上运行) 有两个分支:dev和master。dev是测试服务器,master是生产服务器 除了主github存储库之外,在设计器的计算机上还有一个本地存储库,一个在我的计算机上,一个在testser

我是一名程序员,在不久的将来,我将与一名web/模板设计师合作完成几个项目。您认为我的开发工作流程设置如何?你有什么优化建议吗

一个特定项目的设置
  • 整个项目都托管在github上
  • 该项目是一个在linux操作系统上运行的复杂Web应用程序(无论是在windows还是mac上,都不可能在本地开发服务器上运行)
  • 有两个分支:dev和master。dev是测试服务器,master是生产服务器
  • 除了主github存储库之外,在设计器的计算机上还有一个本地存储库,一个在我的计算机上,一个在testserver上,一个在生产服务器上
  • 我在本地开发(在Windows上)。在开发过程中,有一个自动同步脚本可以自动将我通过FTP编辑的所有文件上传到测试服务器,这样我就可以立即检查我的更改是否有效
  • 设计师也在本地(Mac上)开发,他还将拥有一个自动同步脚本,可以通过FTP自动将他的所有更改上传到testserver,但他只能访问一个特殊的“布局”——所有模板和静态文件(图像、css、js等)所在的目录。他还需要每隔几分钟检查他的更改或新功能是否有效
  • 每当设计师或我在testserver上成功完成并测试了一项新功能时,我们就会将更改从本地开发分支推送到github上的远程开发分支。到目前为止,git还没有接触到测试服务器
  • 每天早上都有一个cronjob,它删除整个testserver目录,然后对托管在github上的远程存储库的dev分支进行“git克隆”。这样testserver就有了所有新的提交
  • 在进一步开发之前,设计师和我必须每天早上使用远程github存储库“git拉”彼此的最新更新
  • 一旦某个特性在testserver上运行良好,我就会将“dev”分支合并到“master”并将master提交到github
  • 然后我们有一个将主分支从github拉到生产服务器的部署
问题 您通常如何处理无法为每个项目成员提供本地开发服务器的情况(因为应用程序无法在本地运行)?有一个测试服务器,每个人都可以通过ftp上传文件来尝试他们的东西,这看起来真的很不专业,因为很容易发生有人覆盖了其他人的文件,所以测试会失败。在没有本地测试服务器的情况下,是否有一个如何在团队中开发的最佳实践示例


提前感谢您的帮助,很抱歉我的英语不是我的母语。

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

我将通过以下方式执行此操作:

  • 托管在github上的中央回购
  • 每个团队成员都有一个运行的本地虚拟机,由管理
  • 有一个暂存/测试服务器,它位于开发分支的前端
  • 有一个生产服务器,它位于主分支的前端
  • 当您开始处理一个新功能时,您会根据主功能创建一个分支。一旦它在本地机器上按预期工作,您就可以提交它并将其合并到dev中并推送到github。通常最好有一个钩子,在每次推送新代码时更新测试服务器

    一旦特性通过测试,您就可以将特性分支合并到master中,并将其推送到您的生产环境中


    如果您想围绕创建功能、合并到分支和执行标记的发布等来简化流程,那么这是一个不错的选择。

    Hi,您发布的问题并不真正适合堆栈溢出,因为您正在寻找意见。关于堆栈溢出的答案需要事实的支持,所以像这样的问题不适合这种性质的问答网站。另外,关于你的问题,我发现工作流最适合我。这一切都是基于为添加的每个新功能创建一个分支,并为生产和发布保留主分支。我不同意。在我看来,这是一个合法的技术问题。我正在寻找最佳实践示例或解释。我修改了我的问题,使之更清楚。在我的例子中,主要的问题不是git的分支工作流,而是在开发服务器上的测试,因为我们没有本地开发服务器。编辑使其更加客观感谢您的建议。你可能是对的,但是我已经和git合作过了,并且做了很多承诺,所以我不能也不想改变主要的风投。这是可以理解的。Git将完成这项工作,但由于您的开发环境,它的性能并没有达到预期的水平