前言

  近来发现阅读开源项目上手就整最新的代码不合适,缺少项目迭代的具体实现过程,想着若是可以看到针对问题的提交代码就好了,所以就有了本篇博客。

  以文主要涉及:如何fork开源项目,如何保证本地仓库代码更新到最新版本。

  本文以开源项目Flink为例进行说明。

1、整体流程

  fork项目  =====>  下载本地 ======>  导入IDEA  , 配置git获取代码提交过程 =====>更新代码

2、fork项目

  为了fork GitHub上的开源项目,首先需要一个GitHub的账号,注册过程可以百度,这里不详细展开。

  在GitHub上找到所需的开源项目,点击右上角的fork,会自动地在自己的GitHub上创建一个repository,具体如下:

3、下载代码

  为了获取contributer的提交过程,这里使用建议使用git在自己的仓库里获取源码。

  直接在git clone 原项目的URL也是可以,但是若是你想贡献代码到原项目了?直接提代码到原开源项目上去提肯定不行的(当然也不是一定不行,仅说一般情况)。提交代码到原项目上的流程一般是:提交代码到个人的GitHub仓库,然后new pull request到原项目仓库,到时候原项目的作者就会根据情况是否合并你的代码。

  获取URL的过程如下图:

  小技巧:若是你直接从GitHub上下载源码速度慢,恰巧你是用的笔记本,你可以使用热点下载,速度惊人,就是不知道是为什么。

4、导入IDEA,配置git获取提交过程

  因为Flink是maven项目,所以导入过程只需要在IDEA中选择“导入已存在项目”,选中pom.xml文件即可。

  该过程涉及以下几点:

  1)Java版本的选择

    正规的开源项目都会说明所适合的JDK版本,一般在GitHub项目下面的README.md文件或项目的wiki上;

    所需的scala版本、maven同理;

  2)配置git

    配置过程可百度。

  效果图如下:

5、更新代码

  以便了解项目的进展,可以采取如下步骤更新本地代码:

  1)配置原项目地址

git remote add upstream <原仓库github地址>     //如:https://github.com/apache/flink.git

  2)查看当前仓库的远程仓库地址和原仓库地址

git remote -v

  3)获取原仓库的更新

git fetch upstream

  4)合并到本地分支

git merge upstream/master

  5)查看本地更新

git log

  6)更新自己fork 的GitHub仓库

git push origin/master

  本地代码更新的还可以先更新GitHub上的仓库,然后在使用git pull更新本地仓库,但是这种方法我在使用过程遇到了无法获取最新的版本分支的情况,具体过程可以参考Ref[1]

  个人建议使用本文提及的以git命令方式更新。

  此外,在使用git从GitHub上拉代码的过程,可能遇到RPC failed问题,可以参考Ref[2]

Ref:

[1] https://www.cnblogs.com/eyunhua/p/8463200.html

[2]https://www.cnblogs.com/zjfjava/p/10392150.html

阅读GitHub源码的正确打开方式的更多相关文章

  1. Mybatis源码正确打开方式

    精心挑选要阅读的源码项目: 饮水思源——官方文档,先看文档再看源码: 下载源码,安装到本地,保证能编译运行: 从宏观到微观,从整体到细节: 找到入口,抓主放次,梳理核心流程: 源码调试,找到核心数据结 ...

  2. 如何正确的阅读 js 源码

    如何正确的阅读 js 源码 https://astexplorer.net/ AST Abstract Syntax Trees https://alligator.io/js/traversing- ...

  3. github下载源码的三种方式

      从github上下载源码的三种方式 CreationTime--2018年6月7日15点21分 Author:Marydon 1.情景展示 2.实现方式 方式一:直接点击"Downloa ...

  4. Pull Request的正确打开方式(如何在GitHub上贡献开源项目)

    Pull Request的正确打开方式(如何在GitHub上贡献开源项目) GitHub的官方帮助如下: Fork A Repo: https://help.github.com/articles/f ...

  5. 阅读 Android源码的一些姿势

    日常开发中怎么阅读源码 找到正确的源码 IDE 是日常经常用的东西,Eclipse 就不说了,直接从 Android Studio(基于 IntelliJ Community 版本改造)开始. 我们平 ...

  6. 如何阅读JDK源码

    JDK源码阅读笔记: https://github.com/kangjianwei/LearningJDK 如何阅读源码,是每个程序员需要面临的一项挑战. 为什么需要阅读源码?从实用性的角度来看,主要 ...

  7. 《大牛到底是如何阅读JDK源码的?》一起来学习一下

    前言: 如何阅读源码,是每个程序员需要面临的一项挑战,为什么需要阅读源码?从实用性的角度来看,主要有三个目的: 第一,解决手头的新问题或者新需求; 第二,真正理解一部分理论的落地实现; 第三,应对面试 ...

  8. CRUD搬砖两三年了,怎么阅读Spring源码?

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! ‍连读同事写的代码都费劲,还读Spring? 咋的,Spring 很难读! 这个与我们码农朝夕 ...

  9. 《手把手教你》系列技巧篇(六)-java+ selenium自动化测试-阅读selenium源码(详细教程)

    1.简介 前面几篇基础系列文章,足够你迈进了Selenium门槛,再不济你也至少知道如何写你第一个基于Java的Selenium自动化测试脚本.接下来宏哥介绍Selenium技巧篇,主要是介绍一些常用 ...

随机推荐

  1. node+express+MongoDB实现小商城服务端

    https://blog.csdn.net/qq_28027903/article/details/82868313

  2. RSA算法原理(简单易懂)

    1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法.在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加 ...

  3. 最简化的DirectX 11开发环境的配置 VS2010

    转载自:http://blog.csdn.net/zhmxy555/article/details/7672101 在编写基于DirectX 11的应用程序之前,我们当然需要在IDE中加入Direct ...

  4. 吴裕雄--天生自然python编程:正则表达式

    re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. 函数语法: re.match(pattern, string, ...

  5. Springboot整合Dubbo和Zookeeper

    Dubbo是一款由阿里巴巴开发的远程服务调用框架(RPC),其可以透明化的调用远程服务,就像调用本地服务一样简单.截至目前,Dubbo发布了基于Spring Boot构建的版本,版本号为0.2.0,这 ...

  6. appium使用相对坐标定位元素

    最近在用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,这样就只能通过相对坐标来进行定位了.但是,问题又来了:如何获取元素的坐标呢? 在网上找了半天也没找到相 ...

  7. 以后的IT路还很长(1)

    以后的IT路还很长(1) 最近有两位兄弟同事离职了,蛮可惜了,在一个战壕一起一.两年了,人各有志嘛!希望他们发展更好些! 目前的公司是个创业型的公司,公司从08年的50来个人,扩张到今年11年400多 ...

  8. es6this箭头函数

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 < ...

  9. 7/8段码管(LED)

    LED显示器在许多的数字系统中作为显示输出设备,使用非常广泛.它的结构是由发光二极管构成的a.b.c.d.e.f和g七段,并由此得名,实际上每个LED还有一个发光段dp,一般用于表示小数点,所以也有少 ...

  10. USB小白学习之路(2)端点IN/OUT互换

    端点2(out)和端点6(in)的out_in互换 注:这里的out和in都是以host为标准说的,out是host的out,在设备(Cy7c68013)这里其实是输入端口:in是host的in,在设 ...