背景

公司有2个app,名字就叫x,y,使用同一套后端(单体php应用,非微服务),因为2个app没啥区别,更多的是内容分类和前端的区别,当然数据也是互通的。

然而最近因为想实验一些东西在y上,但是怕影响x,所以决定把y的后端独立出来,这也很简单,独立些服务器出来, 然后申请个新域名,y的前端把流量灰度

切到新域名上即可(既然独立运营了,后续db也是肯定要分开的,独立web应用是第一步)。代码是同一套,那么代码怎么管理,如果还在同一个仓库上使用,

那么早晚会互相影响,我上了针对y的逻辑,那么x可能会受影响的。所以代码也独立出来,但是涉及到公共的修改,可能x的后端改了些公共部分,y的后端也

得改,但是x改了,那么y可不可以直接更新下代码就行呢? 或者y修改了,x也更新下就行了呢。基于这个场景使用了git的fork

流程

1.在我司的gitlab上找到对应的项目,然后点击fork,然后选择一个新的group,那么就完成了一个项目的fork

2.git clone  git@www.cn:y/back-end/y.git(fork出来的项目)

3. git remote -vv  查看远程关联
origin  git@www.cn:y/back-end/y.git (fetch)
origin  gi@www.cn:y/back-end/y.git (push)

4.与原仓库x建立upstream

git remote add upstream  git@www.cn:x/back-end/x.git

5.再次验证关联 git remote -vv

origin  git@www.cn:y/back-end/y.git(fetch)
origin  git@www.cn:y/back-end/y.git (push)
upstream        git@www.cn:x/back-end/x.git (fetch)
upstream        git@www.cn:x/back-end/x.git (push)

这样就可以了。

6.同步原x仓库的更改

git fetch upstream
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
>  * [new branch]      main     -> upstream/main

会显示出分支的信息,这里我们以main分支为例子

切换到main分支

  1. $ git checkout main
    > Switched to branch 'main'

和原仓库的main分支合并

git merge upstream/main

如果有更改的话,那么会提示

> Updating a422352..5fdff0f
> Fast-forward
>  README                    |    9 -------
>  README.md                 |    7 ++++++
>  2 files changed, 7 insertions(+), 9 deletions(-)
>  delete mode 100644 README
>  create mode 100644 README.md

如果没有更新的话,提示如下

> Updating 34e91da..16c56ad
> Fast-forward
>  README.md                 |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

这样我们本地的main就把原仓库的main分支新push的代码更新了。还有最后一步,更新新仓库y的远程分支man

git  push origin main

这下就完成了,可以看到2个仓库的main分支的代码一样了。

git fork的使用相关推荐

  1. git fork操作

    Git fork操作 文章目录 Git fork操作 一.背景 二.概念 1.与git clone的区别? 2.用法流程 三.实操 1. fork仓库 2. 分支创建与提交 一.背景 最近我在gith ...

  2. git fork clone 区别_Working with Git | Git 与 GitHub

    关于 各位好,这里是 China's Prices Project 项目的知乎专栏.关于 CPP 项目,您可以在这篇文章里了解到更多的信息.若您对这个项目感兴趣,我们非常欢迎您与我们交流您的想法与见解 ...

  3. git fork clone 区别_我的Git笔记

    每次用到git,总会遇到一些问题,所以写这篇文章记录一下. fork 等fork完之后,你可以在自己的仓库中看到同名的项目,URL的形式:https://github.com/your_name/re ...

  4. git fork 远端仓库协作开发

    背景:最近需要用一个大型开源项目作为项目起点,和之后自己开发的部分提交到另一个私有库,同时需要和开源项目保持更新同步. 搜寻查证:大部分都是说的把项目备份到多个远端库,而我需要从一个开源库拉取代码,合 ...

  5. Git fork指令

    ​ork并且更新一个仓库 现在有这样一种情形:有一个叫做Joe的程序猿写了一个游戏程序,而你可能要去改进它.并且Joe将他的代码放在了GitHub仓库上.下面是你要做的事情: fork并且更新GitH ...

  6. git fork代码保持与原代码同步

    1.先添加 remote 源 git remote add remote_origin git@github.com:***/***.git 2.获取原始仓库分支和对应的提交 git fetch re ...

  7. Git——fork远程库的下载和上传。

    目录 0.前言 1.Git安装 2.Ubuntu下使用 2.1 前期准备 2.2 Ubuntu操作指南 2.2.1初始化本地仓库 2.2.2添加远程库 2.2.3 同步远程库(下载) 2.2.4上传 ...

  8. Git clone 与 Git Fork 的不同(Difference between Git Clone and Git Fork)

    Forking 与 Cloning 的主要区别 当你fork一个仓库的时候,你创建了一个原来仓库的副本,并且保留在你的GitHub账号里,但是clone是将仓库下载到本地. Forking is do ...

  9. Git客户端Fork使用

    前言:在使用 Git 版本控制工具以后,一直使用的是客户端 Gitkraken(主要是不想记那么多git命令,而且客户端可视化用起来更爽).但是它最近更新后开始收费了,而且还没办法阻止它更新.没办法, ...

最新文章

  1. mysql大数据优化要注意的细节
  2. android 滚动条自定义样式,IScroll的使用-方向键绑定自定义滚动条样式
  3. http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数...
  4. Mac给Sublime Text 配置Python3开发环境
  5. send和sendmsg性能测试
  6. 【渝粤题库】陕西师范大学800003 中国地理
  7. Java - HashMap源码解析
  8. eXeScope 提取.exe/.dll中的图片资源
  9. python如何运行js代码
  10. 数仓4.0之即席查询
  11. 读《JOINT AND ADVERSARIAL TRAINING WITH ASR FOR EXPRESSIVE SPEECH SYNTHESIS》
  12. You should consider either expiring and/or testing connection validity before use in your applicat
  13. 明日之后 找不到服务器,《明日之后》无法连接服务器怎么解决 服务器无法连接解决方法...
  14. 写一个函数,实现 n 的阶乘
  15. [网易]2018校园招聘编程题真题集合
  16. 公司网络机房搭建,信息化目标,网络故障处理办法
  17. 计算机专业如何晋级正高级,已有软考高级证书如何获得正高级职称?
  18. CPU架构:CPU架构详细介绍
  19. Object-C基础之初始化方法(init)
  20. WIN10 无法连接 WIN7 共享的打印机的方法

热门文章

  1. PS肤色调整19大秘诀
  2. Vue中使用百度地图做路径分析并根据起终点坐标模拟道路里程桩
  3. flex布局——flex-direction属性
  4. 财务管理-货币的时间价值C++程序
  5. 互动拍照 — 前景叠加拍照
  6. 珍藏的几个学术网站--总有你需要的时候哦!
  7. 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
  8. SuperMap iClient3D for Cesium视频投放
  9. 与基础事务管理器的通信失败 存货申请_图文并茂讲解分布式事务的实现原理...
  10. 献给那些浮躁的职场人(转)