Git subtree组件库的使用

2022-11-15  本文已影响0人  云醉倚清风

一:如何把已有的公共部分变为组件库

1:把公共部分在ide中拖入一个文件中

目的:使用ide的能力让引用文件自动变更引用位置

由此:
├── components
│   ├── Banner
│   ├── ComponentA.vue
│   ├── ComponentB.vue
│   ├── ComponentC.vue
│   ├── Filter
│   └── Loading
├── utlis
└── views

变为:
├── components
│   ├── Banner
│   ├── Common
│   │   ├── ComponentA.vue
│   │   ├── ComponentB.vue
│   │   └── ComponentC.vue
│   ├── Filter
│   └── Loading
├── utlis
└── views

2:将这个目录的文件copy到外面

目的:保存组件库文件
保存:ComponentA.vue ComponentB.vue ComponentC.vue

3:删除此目录

目的:后续会使用git命令重新增加

├── components
│   ├── Banner
│   ├── Filter
│   └── Loading
├── utlis
└── views

4:提交

目的:不提交添加git在仓库会报错:Working tree has modifications. Cannot add.

5:自己在git仓库创建一个库

目的:保存组件库的远程仓库

6:项目中添加子仓库

git remote add -f <仓库别名> <仓库地址>
例子:git remote add -f common git@gitee.com:xxx/web-components.git

别名目的:为了后续不在写仓库的全部地址,只需要记住组件库远程地址的别名即可

7:项目中添加在仓库关联

git subtree add --prefix=<本地文件地址> <仓库地址> <仓库分支>
例子:git subtree add --prefix=Common common master
等于例子:git subtree add --prefix=Common git@gitee.com:xxx/web-components.git master
├── components
│   ├── Banner
│   ├── Common
│   ├── Filter
│   └── Loading
├── utlis
└── views

8:组件库文件拖入git生成的Common文件中

目的:子仓库添加组件库文件

9:拉取子仓库的远程仓库

git subtree pull --prefix=Common common master --squash

--squash 只生成一条commit记录...意思不让分支上的所有提交记录信息合并过来

10:推送子仓库更改

git subtree push --prefix=Common common master

二:使用已添加好的组件库的仓库

clone好后组件库就已添加完毕,后续只需要使用

git subtree pull --prefix=Common common master --squash
git subtree push --prefix=Common common master

可以查看git对应的配置文件

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = git@gitee.com:leadj/manager-web.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "common"]
    url = git@gitee.xxxxx/web-components.git
    fetch = +refs/heads/*:refs/remotes/src/components/Common/*

子仓库的远程仓库是由git remote add -f命令生成的

上一篇下一篇

猜你喜欢

热点阅读