git 合并两个远程分支

git 合并两个远程分支


场景:

最初只有一个分支,随着业务发展,分化出不同的分支,分化出的分支又要合并最初分支的修改。

实例:

github 上 fork 别人的项目,别人的项目有更新,自己 fork 的分支也有修改(不能删除后重新fork),需要合并原分支的修改(可能也是 merge 其他人的修改)。

实验准备:

本机已安装好 git 命令行,且配置好 ssh 密钥,可以向自己的 gitbub 提交。

实验材料:

分支地址:

  • git@github.com:tianqing2117/flexbox-layout.git
    自己的仓库地址,有 pull、push 的权限,最终也是更新到这个仓库;
  • https://github.com/google/flexbox-layout.git
    fork 的原项目地址,有 pull 的权限;

两年前 fork 了 google 的项目,google 这两年持续在更新这个项目,一直没有合并 google 的更新。

更新前,自己仓库的状态
更新前,自己仓库的状态



更新前,google 仓库的状态
更新前,google 仓库的状态

操作步骤

  1. 本地 clone 自己的远程仓库
git clone git@github.com:tianqing2117/flexbox-layout.git

clone 后需要 cd 到 flexbox-layout 文件夹里才进入 git 项目目录。

  1. 添加原项目地址为远程仓库地址
git remote add google git@github.com:google/flexbox-layout.git

这里给这个远程仓库地址起名叫 google

  1. 新建本地分支接受 google 仓库地址的内容
git checkout -b tmp

这里创建了一个本地分支叫 tmp ,并切换过去了

  1. 从 google 远程分支更新修改到 本地 tmp 分支
git pull google master:tmp

这里把 google 远程仓库的修改同步到了本地 tmp 分支

  1. 切换回本地 master 分支
git checkout master

因为这个分支的内容是和自己的远程仓库保持同步的

  1. 从本地 tmp 分支合并修改到 master 分支
git merge tmp

相当于把 google 远程仓库的变更合并到本地 master 分支

  1. 提交变更到自己的远程仓库
git push origin master

实验结果

更新后自己远程仓库
更新后自己远程仓库

相关命令详解

  • git clone
git clone <版本库的网址> 
git clone <版本库的网址> <本地目录名> // 指定本地目录名
git clone -o romoteBranchName <版本库的网址> //指定远程分支名称

clone 命令会创建指定本地目录名的文件夹把版本库的内容更新下来,默认创建本地分支 master 和远程分支 origin 并绑定;
-o 可以指定远程分支名称;
不指定本地目录名则创建与版本库目录名一样的目录。

  • git remote
git remote //命令列出所有远程主机
git remote -v //列出所有远程主机并展示远程主机的网址
git remote show <主机名> //查看远程分支的详细状况
git remote add <主机名> <网址> //添加远程主机名
git remote rm <主机名> // 删除远程主机
git remote rename <原主机名> <新主机名> // 修改远程主机名
  • git branch
git branch //查看本地分支 现在所在的分支会有 * 号标注
git branch -r //查看远程分支
git branch -a //查看所有分支(本地+远程)
  • git checkout
git checkout 分支名 //切换到指定分支
//指定本地分支切出新分支并切换。不指定分支时根据当前分支切新分支
git checkout -b newBrach 远程分支/本地已有分支 
  • git merge
git merge 本地分支名 //合并本地分支
//合并本地分支,用于取 fetch 后的内容
git merge 远程分支/本地分支 
  • git pull
//把指定远程主机名远程分支的内容拉取到指定的本地分支
git pull <远程主机名> <远程分支名>:<本地分支名>
//把指定分支内容拉取到当前本地分支,相当于先 fetch 再 merge
git pull <远程主机名> <远程分支名> 
  • git push
//把指定本地分支的 commit 推到指定的远程主机远程分支上
git push <远程主机名> <本地分支名>:<远程分支名>
//把本地分支推送与之存在"追踪关系"的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
git push <远程主机名> <远程分支名> 
//删除指定的远程分支,等同于推送一个空的本地分支到远程分支
git push <远程主机名>:<远程分支名>
//指定默认主机,下次直接 git push 即可
git push -u <远程主机名> <本地分支名>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容