Github Fork 过程概述

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



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

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

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

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

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

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

我 fork 的 galaxyproject/galaxy 项目如下:



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



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

Fork 同步更新步骤

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



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



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



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



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



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



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



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



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







总结

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

——The  End——

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

如何同步更新 Github 上 Fork 的项目?的更多相关文章

  1. github上fork原项目,如何将本地仓库代码更新到最新版本?

    场景: 在github上fork原项目,项目组成员发起pull request提交了代码,这时自己在本地仓库该如何更新到最新代码? 操作方法如下: 方法一.从github上进行操作然后更新 登录自己的 ...

  2. github上fork的项目,如何同步原作者更新的内容?

    一.引言   我在github上fork了一个项目,之后原作者又更新了内容,我想把原作者更新的内容同步到我fork的项目仓库中.在此记录一下同步步骤. 二.同步步骤 打开fork的项目的主页,点击Ne ...

  3. Github上fork的项目如何merge原Git项目

    问题场景 小明在Github上fork了一个大佬的项目,并clone到本地开发一段时间,再提交merge request到原Git项目,过了段时间,原作者联系小明,扔给他下面这幅截图并告知合并处理冲突 ...

  4. 同步GitHub上fork的项目

    最近在做“Python练习册,每天一个小程序”,fork了项目并贡献自己写的代码,项目还有其他人在贡献代码,每天都会更新,这就涉及到了自己fork的项目与原项目的同步更新问题,下面就是我最常用的方法. ...

  5. 如何在github上fork一个项目来贡献代码以及同步原作者的修改

    [-] 如何贡献自己的力量 如何让自己的项目与原作者的项目保持同步 作为一个IT人,通过github进行学习是最快的成长手 段.我们可以浏览别人的优秀代码.但只看不动手还是成长得很慢,因此为别人贡献代 ...

  6. 【转】如何在github上fork一个项目来贡献代码以及同步原作者的修改 -- 不错

    原文网址:http://www.cnblogs.com/astwish/articles/3548844.html 作为一个IT人,通过github进行学习是最快的成长手段.我们可以浏览别人的优秀代码 ...

  7. GitHub上fork一个项目贡献代码以及同步原作者的修改【转】

    如何贡献自己的力量 首先你总得有自己的github帐号吧,注册一个,非常简单,只需用户名,邮箱,密码,邮箱只是用来找回密码的,不做验证.因此注册后立即能用!比如我现在新注册一个叫JsLouvre的示范 ...

  8. github上fork了别人的项目后,再同步更新别人的提交(转)

    原文地址:github上fork了别人的项目后,再同步更新别人的提交 我从github网站和用git命令两种方式说一下. github网站上操作 打开自己的仓库,进入code下面. 点击new pul ...

  9. 在github上fork项目如何同步并解决冲突

    在github上fork项目如何同步并解决冲突 在github上有些项目我们可能会进行一些自己功能的添加但是提交PR后作者基于设计或者其他原因考虑没有通过,但是这个功能又是我们必须的.这时我们就想自己 ...

  10. Github上fork项目后与原项目保持同步

    **步骤** 假设来源为 `https://github.com/_original/_project.git` fork 项目为  `https://github.com/_your/_projec ...

随机推荐

  1. Kafka 管理【主题、分区、消费者组】

    更多内容,前往 IT-BLOG 主题操作 使用 kafka-topics.sh 工具可以执行主题的大部分操作.可以用它创建.修改.删除和查看集群里的主题.要使用该工具的全部功能,需要通过 --zook ...

  2. 为什么HashMap查找比List快很多?

    做两数之和这道题目时,引发了一个思考: 为什么两者运行时间相差如此之大???好残忍,我List比你HashMap到底差在哪**** 于是我一顿查资料.... 战犯哈希算法登场 哈希算法会根据你要存入的 ...

  3. Kafka存储内幕详解

    1.概述 随着微服务和分布式计算的出现,Kafka已经成为各种主流平台系统架构中不可缺少的组成部分了.在本篇文章中,笔者将尝试为大家来解密Kafka的内部存储机制是如何运作的. 2.内容 在分布式系统 ...

  4. VBA GET POST HTTP VBA网络爬虫 最新Excel自动获取股票信息源码 EXCEL自动获取网络数据 最新VBA自动抓取股票数据源码

    最新Excel自动获取股票信息源码 EXCEL自动获取网络数据 最新VBA自动抓取股票数据源码 通过接口获取股票数据内容的主要优点包括以下几点: 实时性高:通过访问股票数据接口,可以实时获取到股票的实 ...

  5. Flask快速入门day02(1、CBV使用及源码分析,2、模板用法,3、请求与响应的基本用法,4、session的使用及源码分析,5、闪现,6、请求扩展)

    目录 Flask框架 一.CBV分析 1.CBV编写视图类方法 二.CBV源码分析 1.CBV源码问题 2.补充问题 3.总结 三.模板 1.py文件 2.html页面 四.请求与响应 1.reque ...

  6. 「刷起来」Go必看的进阶面试题详解

    勤学如春起之苗,不见其增日有所长:辍学如磨刀之石,不见其损日有所亏. 本文的重点:逃逸分析.延迟语句.散列表.通道.接口. 1.逃逸分析 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分 ...

  7. 社工工具包setoolkit克隆网站钓鱼网站

    实验主机:kali  win10 (搭建好的dvwa靶场用于克隆登录页) setoolkit简介:setoolkit 是一个开源的社会工程学工具包.有很多选项可以使用更多操作读者自行探究. 实验开始: ...

  8. 12年经验的大龄程序员,都用什么写 API 文档?

    写代码,程序员不害怕. 写文档,每个程序员都害怕! 为什么? 技术优先,我们更倾向于将技能和精力更多地放在编写代码上,如果 API 工具不好使,不便捷,同步麻烦,测试看不懂,更会大大地打击编写文档的积 ...

  9. Mysql简明语法

    show databases ; use mybatis; show tables ; select * from user; select * from user where id=1; updat ...

  10. android studio 做登陆界面

    先来一个最简单的     AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> &l ...