如何保持github上fork的项目与原项目同步

前言

Github可谓是开发者的乐园,众多的优秀开源项目,有时候咱们想关注某个项目,经常使用的是star,偶尔会fork一下,到我的项目库中,研习代码,更但愿有机会能够贡献代码。做为技术小白,如今会遇到已经fork的代码,原项目可能更新了,而我的帐户下的项目并不能同步更新。如此确定不利于咱们的学习。git

同步项目

在网上搜索如何同步fork项目和原项目,不少热心的网友的各类解决方案。github

  • 删除原有项目,在从新fork。(无疑这是暴力有效的,但毫不是咱们想要的方式)web

  • 在电脑本地同时git clone原项目和fork项目,用git pull更新,而后对比,再git push到github上我的代码库。(虽有繁琐,却也是办法)windows

  • 本地git clone已fork的项目,而后添加远程库为原项目地址。(固然这里确定要有项目访问权限的哦)svg

  • 最后也是本人以为不错的方式,就是用windows下的 github for desktop客户端最为便捷。学习

以上四种方式,前两种基本不用多介绍,主要简介后面来两种的操做。fetch

使用远程代码库方式: 转载自云栖社区spa

首先先经过 github 的 web 页面 fork 目标的项目
前提是本身已经设置好了git,而且配置了相应的权限
而后使用git clone命令在本地克隆本身 fork 的项目:

git clone https://github.com/YOUR-USERNAME/project—name

而后须要复制被本身fork的项目的git地址
切换到本身以前克隆的项目的路径下,使用:

git remote -v
就能够看到当前项目的远程仓库配置

而后使用下面的命令:

git remote add upstream 原始项目仓库的git地址
而后若是你继续使git remove -v命令查看的话,就会发现这个时候已经和原始的被fork的项目产生了关联。
若是想保持项目同步的话,通常使用下面的命令就行了:

git fetch upstream
git merge upstream/master

使用windows 的github客户端3d

一、首先是PC安装了github客户端,并已经关联了github帐号(相似废话)。
二、在web上打开已经fork的项目,选在clone or download对话框,open in Desktop就会调用github的客户端并clone到本地。固然你能够用客户端内直接用git项目地址clone。
github
三、在一段时间后,原项目已经更新,而fork的项目未有更新,此时,在github客户端上,选择如图示的原项目主线—Sync同步,点击update from xxx,再点击选择我的fork的主线—Sync同步。如此能够完成与原有项目的同步。
github desktop
注意:此时并未出现与原项目代码冲突的状况,暂时先这么记下笔记,之后在作详细分析处理。code