多主机分支运用说明

主的远程仓库在Azure Repos上, 常州建立一个镜像远程仓库。

multi-remote.svg

建立镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#先把AzureRepos的仓库clone下来,进入目录
git checkout master
git remote add cz git@gitlab.freedomcz.com.cn:casio/hito-compass/dashboard-app.git
#这样就一个目录就对应两个远程origin & cz

#cz git服务器上还没有过推送是,用下面命令推送
#-------(★★只需管理员做一次★★)-------
git push cz master
#-------------------------------------

#查看当前分支默认对应哪个远程主机
git rev-parse --abbrev-ref --symbolic-full-name @{u}
git branch -vv

# ★如果是: cz/master
# 就用下面命令改为:origin/master
git checkout master
git branch -u origin/master

#也可以用下面代码看远程主机对应的地址
git remote -v

A 同步master/develop分支

图中的A,多远程主机间同步,用下面的命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
git checkout master
#拉取日本master分支代码到本地master分支(如果有更新、合并作业的情况下)
# 省略 origin master
git pull
#推送代码到常州master
git push cz master

# 同步develop分支到常州
git checkout develop
git pull
git push cz develop

常州的镜像分支的使用注意

  • master/develop两个分支,只做和日本同步用
    • 不可推送
    • 不可合并代码
  • 每个功能分支名为:feature/功能名 需要多人对应再次切分时,可以在这个分支上,在切出几个子分支,如:
    • feature/功能名-page
    • feature/功能名-mock 功能OK后,再次合并到feature/功能名
  • 纳品时,用B的命令把feature分支推到Azure Repos远程主机

B 远程推送feature/分支

(纳品STEP1:)图中的B,将常州的feature分支推送到Azure

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 假设是功能 HC001
# 第一次拉取远程分支到本地(本地没有的时候,只做一次一次一次)
git fetch cz feature/HC001:feature/HC001
# 切换分支
git checkout feature/HC001
# 拉取常州git的最新分支到本地
git pull cz feature/HC001
#推送代码到 origin master,  [origin master可省略]
# 【-u可省,就是本地默认对应origin feature/HC001的远程分支】
git push -u origin feature/HC001

C Azure Repos上发送合并请求pull request

(纳品STEP2:)

  • 在Azure上发送合并请求pull request
  • 日方合并代码完成后,再次使用A把master/develop分支同步到常州