git使用之五——Github上fork项目后与原项目保持同步

博客: 安卓之家
微博: 追风917
CSDN: 蒋朋的家
简书: 追风917
博客园: 追风917

git使用之一——git的基本使用
git使用之二——.gitignore文件详解
git使用之三——.git文件夹详解
git使用之四——windows下github桌面版的安装
git使用之五——Github上fork项目后与原项目保持同步
git使用之六——github协同工作的Fork+Pull Request
git使用之七——Android Studio下git的正确使用

问题由来


前几天在github上fork了个项目,今天发现了问题,原作者更新了代码,我的没变样,于是再次fork,仍然没有更新,郁闷了,网上搜索,发现遇到这问题的小伙伴不少呢,然后在此记录下,以便后面遇到同样问题的小伙伴可以迅速解决问题。

解决


1 重新fork

这里的fork不是说你直接点fork,这样是没用的,你要从你的仓库里删除fork来的项目,然后重新fork,这个姿势不大好。。。

2 正确方式

官方解决方案:Syncing a fork

下面是翻译后的具体操作:

方法是在本地建立两个库的中介,把两个远程库都clone到本地,然后拉取原项目更新到本地,合并更新,最后push到你的github就完成。

clone

我准备在e盘下建立这个中介,就是本地仓库了,进入e盘,右键,git bash打开控制台,clone自己的远程仓库:

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

然后cd fastandroid,进入仓库,执行命令:git remote -v

1
$ git remote -v

z

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

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

z

这个hunter名字随便取哦,这次有两个远程分支咯,我们继续

fetch

然后把原项目更新的内容fetch到本地:git fetch hunter

1
$ git fetch hunter

查看下分支:

1
$ git branch -av

z

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

merge

1
2
$ git checkout master
$ git merge hunter/master

z

push

1
$ git push -u origin master

merge后本地的仓库已经是最新的咯,然后push到你的github就同步完成。

3 github桌面版

这个需要借助github桌面版,windows下的安装参考我的另一片博文:git使用之四——windows下github桌面版的安装

安装好后,clone到本地,然后点下sync,这样本地的就更新了哦,然后点下github,就同步了。

z

当然也可以使用 sourcetree 客户端,这个更好用哦。

搞定。

分享是一种美德,更是一种生活方式!!

也许你会说我是一个梦想者,但我不是唯一的一个。

悦分享,越快乐^_^

欢迎交流,转载请注明出处,谢谢!

文章目錄
  1. 1. 问题由来
  2. 2. 解决
    1. 2.1. 1 重新fork
    2. 2.2. 2 正确方式
    3. 2.3. clone
    4. 2.4. fetch
    5. 2.5. merge
    6. 2.6. push
    7. 2.7. 3 github桌面版
,
Fork me on GitHub