如何同步更新 Github 上 Fork 的项目?

Github Fork 过程概述

在 Github 上有很多优秀的开源项目,相信每一位热衷于技术的朋友都会在 Github 上 Fork 一些感兴趣的项目,然后在本地修改并提交。本文以 Galaxy Project 下的 galaxy 仓库为例,在 Github 上 Fork 该项目,更新提交的一个完整过程如下图所示:

34f7b728-203f-4610-9f8e-f38f54c04b36.png

  1. fork 一个项目,比如 galaxy,该操作会复制该项目的所有历史提交内容到个人仓库中,并生成一个相同的项目;

  2. clone 之前 fork 的项目到本地计算机中;

  3. 在本地仓库中更新某些文件;

  4. 提交更新的文件到本地仓库;

  5. 将本地仓库的更改内容推送 push 到个人 github 远程仓库;

  6. 创建 pull 请求,既可以把 fork 原始项目中别人的更新同步到自己的 github 仓库中,也可以提交个人更新的内容到 fork 的原始项目。

我 fork 的 galaxyproject/galaxy 项目如下:

5cb950e6-f89b-4635-9b2a-3186681bdfe0.png

galaxyproject/galaxy 项目 master 版本最新进展如下,可以看到已经有了很大新的代码提交:

7a7fed29-a234-4524-8b30-54d6d88ed7a7.png

下面我们简单介绍一下,如何同被 fork 的项目保持同步更新,将以 galaxyproject/galaxy 项目为例。


Fork 同步更新步骤

  1. 打开自己的 github 中 fork 的项目,打开 Code 选项卡,点击下面的 New pull request 创建一个新的 pull 请求;

    8d88488b-3455-4aee-ba35-39c0a74df28f.png

  2. Comparing chanages 页面,如下图所示,这时 base fork 默认是你 fork 的项目,而 head fork 则默认是你自己的仓库。

    34051b6b-8e53-4cbe-b5c2-82adc4aefc63.png

  3. 在上图中进行选择(前面的 base-fork 选择自己的 github 仓库)后会出现如下图所示页面,这时需要点击 compare across forks,再一次进行选择。

    5f2bd2e0-592d-49f9-b583-dadfedca4486.png

  4. 具体选择如下:base:master 是自己仓库和分支,后面选择 head fork, compare:master 是你 fork 项目来源的仓库和分支,可以对比两个项目前后的变化情况。然后点击 Create pull request,创建新的 pull 请求。

    b495d5b0-6bf4-4db8-b5f4-96083433dcbe.png

  5. 填写标题(Title)和评论(Comment),并点击 Create pull request。Preview 可以预览评论效果,右侧有 5 个选项可以设置检阅用户(Reviewers)、分配给哪个用户(Assignees)、Labels 标签(bug、duplocate、enhancement、help wanted、invalid、question、wontfix,也支持自定义)、项目(Projects),以及里程碑事件(Milestone)。

    21ecae36-1ca0-4100-af50-57d5d53e17f0.png

  6. 点击 Create pull request 之后,就可以在 Pull request 中看到刚才提交的 comment,如下所示。

    a53f62cf-fb98-4ee6-a40a-7a081d566821.png

  7. 可以看到期间有很多的提交更新,往下翻可以找到如下图所示,点击 Merge pull request

    f056b5e3-11be-48bf-a206-a8dd8a37d8f2.png

  8. 填写 Merge 的评论并且提交,如果有冲突一定要先解决冲突,然后就全部 OK 了。

    eee17990-8186-4127-9651-fd82c594eb00.png

  9. 最后,再次打开自己仓库的 galaxy 项目,可以看到项目已更新到最新版本,和最开始 galaxy 原始项目内容一致了。

    cc8bf278-acd3-4210-9a98-7f63d8af53f4.png


    7a7fed29-a234-4524-8b30-54d6d88ed7a7.png


总结

本文讲解了同步更新 Github 上 Fork 项目的其中一种方法,还有其他的方法比如可以删除个人 github 中 fork 的该项目然后重新 fork,这种方式不能合并自己已更新的代码;还有另外一种方式是在本地建立两个仓库,把两个远程库都 clone 到本地,然后拉取原 fork 项目更新到本地,合并更新,最后 push 到你个人的 github 即可。


——The  End——

98b079cb-4d0b-4bde-8123-45b3d83b0884.gif



本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值