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 <1263598336@qq.com>
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
网友评论