GitHub 上 fork 的代码,如何保持与原作者同步更新

githubfork别人的代码之后,如何保持和原作者同步的更新

一、命令行的方式

首先要先确定一下是否建立了主repo的远程源:

# git remote -v

如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源

1、配置上游项目地址。即将你 fork 的项目的地址给配置到自己的项目上。比如我 fork 了一个项目,原项目是 wabish/fork-demo.git,我的项目就是 cobish/fork-demo.git。使用以下命令来配置。

# git remote add upstream https://github.com/wabish/fork-demo.git

然后可以查看一下配置状况,很好,上游项目的地址已经被加进来了。

# git remote -v
origin  git@github.com:cobish/fork-demo.git (fetch)
origin  git@github.com:cobish/fork-demo.git (push)
upstream    https://github.com/wabish/fork-demo.git (fetch)
upstream    https://github.com/wabish/fork-demo.git (push)

2、获取上游项目更新。使用 fetch 命令更新,fetch 后会被存储在一个本地分支 upstream/master 上。

# git fetch upstream

3、合并到本地分支。切换到 master 分支,合并 upstream/master 分支。

# git merge upstream/master

4、提交推送。根据自己情况提交推送自己项目的代码。

# git push origin master

由于项目已经配置了上游项目的地址,所以如果 fork 的项目再次更新,重复步骤 2、3、4即可。

二、只用Github不用命令行的方法

玩过github的人一定会在你自己的账号上fork了一些github开源项目。这些开源项目往往更新比较活跃,你今天fork用到你自己的项目中去了,过几个星期这个fork的origin可能有一些bugfix了,你怎么办呢?当然直接到Origin repo中去clone是一个方法,但是github的public repo有可能过一段时间就被作者删除了,你是否希望在origin即使已经被删除的情况下,你的账号下依然有你钟情的repo?

解决上面的问题,最好的方法就是不定时地将origin的commit sync到你自己的fork repo中,一方面能够保持鲜活,另一方面有备无患。那么如何sync呢?又有几种方案,一种是你直接在本地clone的repo中,pull upstrame,做好merge,随后push到你自己的fork repo中。另外还有一种更加简便聪明的方法:只需在github网站上点几个鼠标,不用本地开发环境轻松搞定:

1.打开你的github fork repo;

2.点击Pull request;

3.点击new pull request.默认情况下,github会比较original/your fork,这时应该不会有任何输出,因为你并没有做过任何变更;

4.点击switching the base.这时github将反过来比较yourfork/original,这时你将看到original相对你fork时的所有commit;

5.点击create a pull request for this comparison,这时将会反过来向你的repo提交一个pull request;

6.这时你作为你自己fork的repo的owner,你就可以点击confirm the merge,大笔一挥,所有的改动都被你一网打尽了@!

enjoy it!

图解

1.进入你的GitHub发起Pull request

这里写图片描述

2.选择compare across forks

这里写图片描述

3.反向操作。base fork改为自己的,head fork改为原作者的

4.点击 create pull request

这里写图片描述

5 添加comment

这里写图片描述

6.点击create pull request

7.点击Merge pull request

这里写图片描述

  1. Confirm merge

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据AI

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值