Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在方便部署和版本控制方面,组织SPA项目结构的正确方法是什么?_Git_Deployment_Frontend_Backend_Code Organization - Fatal编程技术网

Git 在方便部署和版本控制方面,组织SPA项目结构的正确方法是什么?

Git 在方便部署和版本控制方面,组织SPA项目结构的正确方法是什么?,git,deployment,frontend,backend,code-organization,Git,Deployment,Frontend,Backend,Code Organization,先决条件: 我需要ogranize Single Page Application(SPA)项目开发,前端应该基于一个Popullar前端js框架,这意味着使用基于gulp/webpack的前端构建系统从Es2015 js源、Sass样式和Jade标记构建最终捆绑包。后端应基于Laravel 5.x 最后,我介绍了前端包,它应该与后端代码一起使用。在开发的每个阶段,我都有一定的前端包和一定的后端代码,它们可以正确地协同工作 问题: 如何最正确地将所有源代码置于版本控制之下(比如使用Git)?

先决条件:


我需要ogranize Single Page Application(SPA)项目开发,前端应该基于一个Popullar前端js框架,这意味着使用基于gulp/webpack的前端构建系统从Es2015 js源、Sass样式和Jade标记构建最终捆绑包。后端应基于Laravel 5.x

最后,我介绍了前端包,它应该与后端代码一起使用。在开发的每个阶段,我都有一定的前端包和一定的后端代码,它们可以正确地协同工作

问题:


  • 如何最正确地将所有源代码置于版本控制之下(比如使用Git)?我是否需要为后端和前端部件的两个单独回购项目的所有项目创建一个回购?为什么?

  • 如何组织版本控制,以便最方便、最简单地将project的当前发布版本部署到生产服务器

  • 以下是我的想法:在一次回购中同时拥有前端捆绑包和后端代码+迁移的实际版本似乎是个好主意,但我的困境是:对于生产,我只需要前端捆绑包,而不需要初始前端源代码(sass、jade等文件)。我的前端包在前端源代码/样式/makrup的每次更改中不断地与我的构建系统重新构建,所以每次构建后输出包都是不同的

    • 如果我要为后端和前端创建公共repo,那么前端源也将包含在repo中,并且我不需要在生产服务器上使用它们
    • 如果我将为前端和后端创建两个单独的回购协议,那么我将如何同步实际的前端捆绑包和后端代码的实际版本,以及如何返回到项目的特定版本
    我希望这是写得很清楚,以了解我,我要求任何类型的建议或一些文件的链接,可以为我澄清这样的沉默

    如果我将为
    前端
    后端
    创建两个单独的回购协议,那么我将如何同步
    前端
    捆绑包和
    后端
    代码的实际版本,以及如何返回到项目的特定版本

    这通常通过父回购完成,父回购的任务是记录声明为
    前端
    后端
    的正确版本

    每次
    前端
    后端
    更改时,您的父回购
    git状态
    都会提到这些回购的SHA1已更改(即其主父回购的


    通过推动父回购(除了推动
    前端
    后端
    回购),您可以跟踪哪个版本的
    前端
    与哪个版本的
    后端
    ,并且您可以返回到项目的特定版本(通过父回购历史)。

    谢谢您的回答,但由于我对git不是很精通,您能向我澄清一下,如果我只需要组装包,而不需要前端项目中的整个前端回购,甚至不需要这个包的一部分(仅组装样式和脚本),子模块在这种情况下能帮我吗?你看,我的问题有两个方面:1)在每次重建前端时,我只需要后端的新生成捆绑包,我不想每次重建后都手动复制捆绑包;2)我希望在不手动复制前端捆绑包的情况下轻松部署后端。@dajnz你是对的,这(子模块)这不是个好主意:子模块是一个git回购协议,一个全git回购协议(不仅仅是它的一部分)。如果您可以将代码库划分为独立的模块,那么子模块方法适合您。