关于开源项目的Git仓库管理

本文最后更新于:7 天前

简介

  • 仓库:Repository
  • 分支:Branch

开源框架的使用,需要在上游原仓库代码的基础上进行自己业务的开发。

由于框架的版本迭代,框架的代码结构及业务可能会发生改变,这就会导致我们之前写的代码,在框架升级后无法正常运行。

为了保证Git提交记录可以一直在上游的分支上,所以我们需要进行多仓库管理。

目前推荐的做法为:

上游原仓 同步仓 业务仓
仓库说明 跟进最新改动 以上游仓为基础,我们需要进行一些自定义修改,统一化处理等功能 以同步仓为基础进行业务场景开发的仓库
分支说明 一般情况下我们只同步master分支 我们需要同步上游的master分支,然后将该master分支,再合并到我们自定义处理的分支上 我们需要同步仓自定义后的分支,在同步仓的基础上,再开自己的业务分支
master master
⇅ git merge
my-master my-master
⇅ git merge
my-dev
sequenceDiagram
participant 上游仓库
participant 同步仓库
participant 业务仓库
loop 同步分支
同步仓库-->>上游仓库: master
上游仓库-->>同步仓库: 
end
opt 检出 my-master
alt
同步仓库->>同步仓库: `master` merge into my-master
end
end
loop 同步分支
同步仓库-->>业务仓库: my-master
业务仓库-->>同步仓库: 
end
opt 检出 my-dev
alt
业务仓库->>业务仓库: `my-master` merge into my-dev
end
end

操作过程:

Git 仓库是支持多远端功能的

  • git clone 一份上游仓库到本地

  • 然后到Git服务(如Gitee/Github/Gitlab)上创建一个空仓库,拿到仓库的链接,例:

    https://gitee.com/yourname/yourrepository.git

  • 将该仓库的链接添加到本地仓库中,一般情况下,origin 代表默认仓库,我们可以执行如下语句添加第二个仓库:

    1
    git remote add MySync https://gitee.com/yourname/yourrepository.git
  • 然后将代码信息推送到刚刚添加的仓库上:

    1
    git push MySync master:master

    这样我们的同步仓就拥有了完整的上游仓库信息

  • 然后我们检出一个自己的主分支,用于做自定义处理等业务,如:去开源标识、第三方链接、初始化数据、强密码登录、全屏水印等功能

    1
    git branch checkout my-master

    然后这个分支就一直保留下去,当作我们使用开源项目进行自己业务开发的 ‘模板’ 代码

  • 当我们有了新的业务开发,同样到Git服务上创建一个新的空仓库,拿到仓库链接,例:

    https://gitee.com/yourname/your-custom.git

  • 然后将该链接添加到同步仓的远端中:

    1
    git remote add MyCustom https://gitee.com/yourname/your-custom.git
  • 然后将 my-master 分支推送到我们的业务仓中:

    1
    git push MyCustom my-master:my-master

    这样我们的业务仓,就与 ‘模板’ 仓保持了一致的版本信息

  • 为了避免误操作导致仓库信息错乱,我们应该 clone 业务仓到一个新的文件夹中,并且在 my-master 分支的基础上新开一个分支,例如:my-dev,以后所有的业务开发,都在 my-dev 上进行。

    当模板仓(同步仓)与上游代码合并,或者自定义处理、统一性功能等进行了更新时,就用模板仓推送 my-master 到业务仓,然后业务仓再将 my-mastermy-dev 合并即可


关于开源项目的Git仓库管理
https://blog.doracoin.cc/posts/opensource/2617185563.html
作者
Doracoin
发布于
2024年3月21日
更新于
2025年9月9日
许可协议