Github上fork的项目怎么更新同步原项目

【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来源地址!未经授权,严禁私自转载!


在GitHub上我们会去fork别人的一个项目,然后在自己的GitHub中会生成一个副本,自己将副本clone到电脑本地上可以修改代码,修改之后push提交到远端remote中的origin,发现自己的GIthub副本中的代码改变了,而作者变更的代码没有同步下来,这时你需要合并原作者的最新代码过来, 让你的项目变成最新的。

一般有两种做法,第一种做法可谓简单粗暴,但却不是最好的做法,说明如下:

  • 第一种:将自己仓库中原来fork的项目删掉 (delete deletethis repository),然后在重新到原作者仓库中(fork)一份最新代码(不推荐方式),这似乎达到了我们的最终目的,但是自己改变的代码没合并进来。
  • 第二种:在本地建立两个库的中介,把两个远程库都clone到本地,然后拉取原项目更新到本地,合并更新,最后push到你的github就完成。(推荐方式)

具体实现:

(1)准备一个本地目录,并克隆自己fork的项目到本地。

$ git clone https://github.com/jp1017/FastAndroid.git

(2)然后cd 进入仓库(这里我直接进入项目根目录下),执行命令:

$ git remote -v

可以在cad控制台查看本地项目目录,如下:

图1.png

(3)我们可以看到,只有我们自己的远程仓库,下面clone原项目到该仓库

$ git remote add hunter https://github.com/huntermr/FastAndroid.git
$ git remote -v

hunter 相当于一个别名,名字随便取。


图2.png

(4)这时有两个远程分支,我们继续 fetch,然后把原项目更新的内容fetch到本地

$ git fetch hunter

(5)查看下分支:

$ git branch -av
图3.png

(6)一个本地分支master,三个远程分支,画红线的就是要合并的 merge

$ git checkout master
$ git merge hunter/master
图4.png

(7)如果有冲突的话,需要丢掉本地分支:

$ git reset –hard hunter/master 

(8)这时你的当前本地的项目变成和原作者的主项目一样了,可以把它提交到你的GitHub库

$ git commit -am ‘更新到原作者的主分支’
$ git push origin 
$ git push -u origin master -f –强制提交
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 9,920评论 2 8
  • 她的童年很悲。父母离婚,她与母亲相依为命。在离婚后没多久,她就听到了一个不可思议的消息——父亲娶了第四任老婆。她始...
    w栀虞w阅读 2,593评论 0 0
  • 正在逐渐养成一种习惯。心情不是很好的时候,就找本书来读,融进书里之后,注意力就慢慢被转移了。我把微博名字改成肤浅的...
    还好你来了阅读 1,748评论 1 2
  • 点亮地图的说法源自友人有序,玩过“魔兽争霸”游戏的人一定会理解:地图上一开始的时候只有基地附近是明亮的,其他地方都...
    冰凝雪国阅读 2,744评论 2 3
  • 早上拔草中午小萍家喝茶下午处理违章晚上空调维修。贝斯特新泳池大概一米三,高度非常合适。晚饭吃鸭子,喝水和牛奶后还是...
    行一馆阅读 1,157评论 0 0