git 同步远程仓库A和远程仓库B

AB目录.png

B是从源A上 fork 出来的:

远程(源)A B fork A 远程B
pro pro
test 被删除
test2.5 被删除
dev:是peo分化出来的新分支
新增test2.6

前提:绑定远程仓库

本地新建仓库(your_AB) 绑定远程A 和 远程B仓库

#进入your_AB文件夹下,初始化本地仓库
$ git init

#关联多个远程仓库
$ git remote add A https://github.com/zhengjiaao/A.git
$ git remote add B https://github.com/zhengjiaao/B.git

#查看本地仓库关联的所有远程仓库地址,能查到 A和B 说明绑定成功
$ git remote -v

情况一:B 获取远程A 新增的test2.6分支

前提:如果没有绑定远程仓库请参考上面 【前提:绑定远程仓库】

#更新远程仓库数据信息到本地仓库your_AB,不是将远程仓库代码下拉到本地
$ git fetch A test2.6
$ git fetch B

#查看 远程仓库分支信息
$ git branch -r

#创建本地分支且关联的远程分支,注:test2.6是A远程仓库上的新增的分支,且B仓库不存在
$ git checkout -b test2.6 A/test2.6

#推送本地分支到远程仓库并在远程仓库创建新分支 ,注:B 为设置的远程仓库别名,第一个test2.6为本地分支名,第二个test2.6为远程分支名
$ git push B test2.6:test2.6

情况二:B dev 获取 远程A仓库test2.6某次cimmit

前提:如果没有绑定远程仓库请参考上面 【前提:绑定远程仓库】

#更新远程仓库数据信息到本地仓库your_AB,不是将远程仓库代码下拉到本地
$ git fetch A test2.6
$ git fetch B dev

#创建本地分支且关联的远程分支
$ git checkout -b test2.6 A/test2.6
$ git checkout -b dev B/dev

#切换到本地test2.6分支 
$ git checkout test2.6

#查看test2.6分支 commit提交的日志 , 退出日志 英文状态下按Q
$ git log
commit 3c03d1c376ccc8c58d1f232c5e0f57cdeba8df53
Author: Zhengjiaao <[email protected]>
Date:   Tue Oct 15 09:52:46 2019 +0800
    your_fork:新增fork9文件

#切换到B_pro分支 
$ git checkout dev

#根据提交日志中的 commit Id 合并某次 commit 
$ git cherry-pick 3c03d1c376ccc8c58d1f232c5e0f57cdeba8df53

情况三:A pro 获取 B dev 某个文件

前提:如果没有绑定远程仓库请参考上面 【前提:绑定远程仓库】

#更新远程仓库数据信息到本地仓库your_AB,不是将远程仓库代码下拉到本地
$ git fetch A pro
$ git fetch B dev

#创建本地分支且关联的远程分支
$ git checkout -b pro A/pro
$ git checkout -b dev B/dev

#首先切换到A仓库的 pro 分支
$ git checkout pro

#将dev分支的view文件夹下index.html文件合并到分支pro
$ git checkout B view/index.html

#下拉A
$ git pull A pro

# 推送到A远程仓库
$ git push A pro

你可能感兴趣的:(git 同步远程仓库A和远程仓库B)