您的位置:首页 > 健康 > 美食 > GitHub 上 fork 的代码,如何保持与原作者同步更新

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

2024/10/6 5:53:38 来源:https://blog.csdn.net/u011026329/article/details/79183168  浏览:    关键词: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

这里写图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com