在 Github、Gitlab、本地Git仓库 上的分布式工作流程

1、shuijingwan/yii2-app-advanced(Github),如图1
(1)项目维护者:wangqiang
(2)公共仓库:https://github.com/shuijingwan/yii2-app-advanced.git
(3)公共仓库可见等级:公共
(4)维护者从公共仓库克隆,在自己的本地仓库(github-shuijingwan-yii2-app-advanced)中,执行拉取、推送
(5)分支:长期分支:master;短期分支:功能(feature)分支、预发布(release)分支、修补bug(fixbug)分支
(6)shuijingwan/yii2-app-advanced(Github) 与 yiisoft/yii2-app-advanced(Github) 基于 Composer 保持同步更新
具体流程可参考:

图1

2、在 Gitlab 上新建项目 php/yii2-app-advanced,如图2
注:
(1)项目维护者:wangqiang
(2)公共仓库:https://gitlab.chinamcloud.com/php/yii2-app-advanced.git
(3)公共仓库可见等级:内部

图2

3、从公共仓库克隆至本地仓库(gitlab-php-yii2-app-advanced),如图3

图3

4、将主贡献者仓库加为远程仓库,如图4(添加/保存远端)、图5(不禁用获取标签)、图6(获取远端分支)、图7(确定)、图8(关闭)、图9(确定)
注:
(1)主贡献者仓库:https://github.com/shuijingwan/yii2-app-advanced.git
(2)主贡献者仓库可见等级:公共(只能够拉取,不能够推送)
(3)维护者从公共仓库克隆,在自己的本地仓库中,将主贡献者仓库加为远程仓库,执行拉取
远端:github-shuijingwan-yii2-app-advanced
URL:https://github.com/shuijingwan/yii2-app-advanced.git
(4)php/yii2-app-advanced(Gitlab) 与 shuijingwan/yii2-app-advanced(Github) 保持同步更新

图4

图5

获取远端分支

图7

图8

图9

5、将主贡献者仓库(https://github.com/shuijingwan/yii2-app-advanced.git)拉取至本地仓库,如图10

图10

6、将拉取后的本地仓库推送到公共仓库(https://gitlab.chinamcloud.com/php/yii2-app-advanced.git),如图11
注:
(1)维护者将拉取后的本地仓库推送到公共仓库
(2)分支:长期分支:master;短期分支:功能(feature)分支、预发布(release)分支、修补bug(fixbug)分支

图11

7、后期 Gitlab 上的所有项目的主贡献者仓库:php/yii2-app-advanced,在 Gitlab 上新建项目 php/yii2-app-advanced-cmc,如图12
注:
(1)项目维护者:wangqiang
(2)公共仓库:https://gitlab.chinamcloud.com/php/yii2-app-advanced-cmc.git
(3)公共仓库可见等级:内部

图12

8、从公共仓库(https://gitlab.chinamcloud.com/php/yii2-app-advanced-cmc.git)克隆至本地仓库(gitlab-php-yii2-app-advanced-cmc),如图13

图13

9、将主贡献者仓库加为远程仓库,如图14(添加/保存远端)、图15(不禁用获取标签)、图16(获取远端分支)、图17(确定)
注:
(1)主贡献者仓库:https://gitlab.chinamcloud.com/php/yii2-app-advanced.git
(2)主贡献者仓库可见等级:公共(只能够拉取,不能够推送)
(3)维护者从公共仓库克隆,在自己的本地仓库中,将主贡献者仓库加为远程仓库,执行拉取
远端:gitlab-php-yii2-app-advanced
URL:https://gitlab.chinamcloud.com/php/yii2-app-advanced.git
(4)php/yii2-app-advanced-cmc(Gitlab) 与 php/yii2-app-advanced(Gitlab) 保持同步更新

图14

图15

图16

图17

10、将主贡献者仓库(https://gitlab.chinamcloud.com/php/yii2-app-advanced.git)拉取至本地仓库(gitlab-php-yii2-app-advanced-cmc),如图18

图18

11、将拉取后的本地仓库(gitlab-php-yii2-app-advanced-cmc)推送到公共仓库(https://gitlab.chinamcloud.com/php/yii2-app-advanced-cmc.git),如图19
注:
(1)维护者将拉取后的本地仓库推送到公共仓库
(2)其他贡献者从公共仓库克隆,在自己的本地仓库中,拉取、推送
(2)分支:长期分支:master、develop;短期分支:功能(feature)分支、预发布(release)分支、修补bug(fixbug)分支

图19

12、php/yii2-app-advanced-cmc(Gitlab),新建分支 develop,如图20

图20

13、本地仓库拉取后,切换至 develop 分支,合并,如图21、图22

图21

图22

 

永夜