用 Git Subtree 在多个 Git 项目间双向同步子项目,附简明使用手册
什么时候需要 Subtree ? 1、当多个项目共用同一坨代码,而这坨代码跟着项目在快速更新的时候 2、把一部分代码迁移出去独立为一个新的 git 仓库,但又希望能够保留这部分代码的历史提交记录。 有赞微商城曾经是一个很大的前后端代码都包含在里面的 Git 项目,为了方便管理我们把前后端代码分离成2个 Git 仓库,进而再作分项目拆分成多个Git 仓库。 于是,就需要有好的方式同步各个项目共用的Css库、JS库、PHP库(他们都是以独立的 Git 仓库的形式存在)。而且由于开发节奏极快,我们需要这些库是 可以在不同项目间双向同步的而不是单向同步。 而且,最好能做到被迁移的这部分代码在新的git仓库里保留原有的历史提交记录。 举个栗子:A项目需要在给某个子项目W里添加一个文件,最方便的方式自然是直接在A项目里改W子项目对应的目录里的代码,然后测试通过后,把这个更改提交到W子项目的 Git仓库里。如果这时候还要先单独更新W子项目的代码然后提交到 Git 服务器,再在A项目里把W子项目的代码更新过来,显然是很麻烦的,更麻烦的是如果发现代码有bug,还得再走一遍这个流程。 Git Submodule:这是Git官方以前的推荐方案 Git Subtree:从 Git 1.5.2 开始,Git 新增并推荐使用这个功能来管理子项目 npm:node package manager,实际上不仅仅是 node 的包管理工具 composer:暂且认为他是php版npm、php版Maven吧 bower:针对浏览器前端的包管理工具(Web sites are made of lots of things - frameworks, libraries, assets, utilities, and rainbows.
https://tech.youzan.com/git-subtree/
Loading Comments...