zoukankan      html  css  js  c++  java
  • 使用git subtree管理不同项目的公用页面

    在公司写项目,基本上很多项目都会有一些通用的页面,比如登录页,个人中心这种基础页面,每次复制会觉得很麻烦,后期修改也要同时改好几个地方.本子着解耦的思想开始想解决方法.最先想到npm安装包引入,不过这种事完整页面,不是组件功能,npm不适用.后来找到了一个git subtree,仓库公用

    git subtree就是如果多个项目有通用文件夹,将文件抽离出去,在git上新建一个仓库,适用git subtree相关命令引入,后期修改可以再子仓库修改,也可以在父仓库修改,在使用命令同步代码就可以了.是不是很适合这种场景?所以就操练起来吧
     

    一. 父仓库引入子仓库内容

    我的项目里这个design文件我需要抽离出来通用,在git上新建一个项目,名称为design,将这个design文件剪切过去,上传到远程,父仓库里把这个文件删除

    然后在父仓库根目录执行命令git subtree add --prefix=src/pages/design https://githup.com/shengbid/design --squash

    然后出现了一个错误
     
    这个错误是因为我在Git地址后面没有指定分支 修改一下 git subtree add --prefix=src/pages/design https://githup.com/shengbid/design master 这样就可以了

    然后说明一下这句指令, git subtree add 是添加子仓库到父仓库里  --prefix=src/design添加到父仓库的src/pages目录下,文件名为design  之后的是你Git子仓库的文件地址,复制网页的地址就成   master是仓库分支名  上一句我有添加--squash 这个是不需要同步子仓库的历史提交记录,这里没什么提交记录,不加也可以

    这一步还可能会出现下面这个错误,这是因为你父仓库有改动的内容没提交,提交后再引入就可以了

    这样文件里就有design这个文件了,引用按照和正常文件的使用一样
     

    二.父仓库同步子仓库提交内容

    在子仓库修改一些内容,提交上去
    然后父仓库使用命令 git subtree pull --prefix==src/pages/design https://githup.com/shengbid/design master  --squash

    这样子仓库的提交内容就同步过来了
     

    三.子仓库同步父仓库提交内容

    在父仓库中修改子仓库的内容,提交上去

    然后在父仓库使用命令git subtree push --prefix==src/pages/design design master将修改的内容提交到子仓库
    这里的命令有一点改变,将git地址换成了design,因为每次输入git地址很麻烦,可以使用git remote add -f design https://githup.com/shengbid/design将地址替换长指定命令,design是我指定的替换地址命令,可以改成别的

    在子仓库的提交记录里就可以看到父仓库推送的内容了
     
    如果其他项目也需要引入这个文件,就是同样的操作步骤
     
     
  • 相关阅读:
    QOMO Linux 4.0 正式版发布
    LinkChecker 8.1 发布,网页链接检查
    pgBadger 2.1 发布,PG 日志分析
    Aletheia 0.1.1 发布,HTTP 调试工具
    Teiid 8.2 Beta1 发布,数据虚拟化系统
    zLogFabric 2.2 发布,集中式日志存储系统
    开源电子工作套件 Arduino Start Kit 登场
    Piwik 1.9 发布,网站访问统计系统
    Ruby 1.9.3p286 发布,安全修复版本
    toBraille 1.1.2 发布,Java 盲文库
  • 原文地址:https://www.cnblogs.com/steamed-twisted-roll/p/13802373.html
Copyright © 2011-2022 走看看