美文网首页Java技术日志云时代架构思科DevNet
如何同步更新Github上Fork的项目?

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

作者: 梁朋举 | 来源:发表于2017-12-03 21:58 被阅读38次

    Github Fork 过程概述

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

    Fork and update Github repo
    1. Fork一个项目,比如spring-framework,该操作会复制该项目的所有历史提交内容到个人仓库中,并生成一个相同的项目;
    2. Clone之前Fork的项目到本地计算机中;
    3. 在本地仓库中更新某些文件;
    4. 提交更新的文件到本地仓库;
    5. 将本地仓库的更改内容推送push到个人github远程仓库;
    6. 创建pull请求,既可以同步更新fork的原始项目中别人的更新到自己的github仓库中,也可以提交个人更新的内容到fork的原始项目。

    Fork问题

    我Fork的 spring-framework项目如下:

    我Fork的spring-framework

    spring-framework项目最新进展如下:

    spring-framework最新进展

    可以看到在我Fork以后spring-framework有了很大新的代码提交,本文就是想简单介绍一下,如何同被Fork的项目保持同步更新,将以spring-framework项目为例。

    保持Fork同步更新

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


    Code-New pull request

    2.打开Comparing chanages,默认如下图所示,这时base fork是你fork的项目,二head fork是你自己的仓库。

    Comparing chanages

    3.在上图中进行选择,前面选择base-fork选择自己的github仓库的spring-framework项目,会出现下图所示,这时需要点击compare across forks,并进行选择。

    compare across forks

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

    Create pull request

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

    填写标题Title和评论Comment

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

    可以期间有很多更新,往下翻可以找到如下图所示,点击Merge pull request即可。

    Merge pull request

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


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

    Fork更新之后

    总结

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


    本订阅号提供Java相关技术分享,从Java编程基础到Java高级技术,从JavaWeb技术基础Jsp、Servlet、JDBC到SSH、SSM开发框架,从REST风格接口设计到分布式项目实战。剖析主流开源技术框架,用亲身实践来谱写深度Java技术日志。“

    欢迎关注 Java技术日志 微信订阅号

    相关文章

      网友评论

        本文标题:如何同步更新Github上Fork的项目?

        本文链接:https://www.haomeiwen.com/subject/vsiabxtx.html