转载说明: 文章转载整理自https://segmentfault.com/q/1010000004228020
问题概要
在项目的仓库中,有一个项目A,我将它fork到我自己的仓库中作为项目B,此时,项目B与项目A的分支是相同的。
后来,在项目A里,新建了一个分支后,我要怎么把这个分支同步到项目B中呢?
- 项目A是搭建在 gitlab上的,所以,fork操作也是gitlab上进行的
- gitlab上,好像没有大家说的new pull request这个操作
- 如何在Linux的命令行中,实现我上面的需求
解决方案
# 1.将项目B clone 到本地
git clone -b master 项目B的git地址
# 2.将项目A的git地址,添加至本地的remote
git remote add upstream 项目A的git地址
# 3.在本地新建一个分支,该分支的名称最好与项目A中新增的那个分支的名称相同以便区分
git checkout -b 新分支名称
# 4.从项目A中将新分支的内容 pull 到本地
git pull upstream 新分支名称
# 5.将 pull 下来的分支 push 到项目B 中去
git push origin 新分支名称
其中,上面的 3 和 4 两步可以合并为下面的这一步:
git checkout -b 新分支名称 upstream/新分支名称
以上过程,总的来看,就是将项目A的分支先pull到本地,再从地本push到项目B中,即把本地当作一个中间桥梁的作用。
编者后话
这个方法慎用! 如果新分支和Master分支差别很大,有可能出现意想不到的情况。