官方的解释还是有点模糊,我是参照这篇文章来的。

http://www.linuxidc.com/Linux/2012-12/76922.htm

关于Git的版本管理的原理,我是从这篇文章里面学习的。

http://wenku.baidu.com/view/78898a1fa76e58fafab00377.html

下面我来总结一下如何在github上面将他人的项目拷贝到自己的本地,修改代码之后重新上传到自己的项目主页,同时通知原项目开发者。

1.安装git工具

  1. >sudo apt-get update
  2. >sudo apt-get install git

2.Fork一个项目到自己的主页

在想要fork的页面fork一个。

3.克隆一个拷贝到自己的主机上

在我们fork出来的自己的主页上拷贝http clone的地址,在本地的机子上运行如下命令将自己主页代码库中的代码文件拷贝到本机上的文件夹来。

  1. >git clone 'http clone 的地址'

一般clone下来的文件夹都会在本地的用户的主目录下面。所以直接在终端输入cd命令加上项目名称即可进入项目文件夹中。

4.配置本地库与原始库的关联

进入我们的项目文件夹:

  1. >cd projectName

添加与原始库的关联,命名为upstream,此地址是原项目开发者的项目主页上的clone的地址:这是专门用来与主开发者保持相同进度的方法:

  1. >git remote add upstream ’clone地址‘

从原始库中抓取最新的更新

  1. >git fetch upstream

5.在本地修改代码文件并PUSH

在本地修改完文件测试完成之后,将代码提交到我们自己的fork出来的项目主页。

  1. git commit -a -m ’更新原因'
  2. git push 'fork出来的地址‘

通过这两个命令就可以将我们的修改发送到我们的fork主页上去,但是,这个时候项目的开发者还不知道我们的修改,通过下面的步骤可以通知开发者。

6.发送pull request给主开发者

在项目主页上

代码目录左上方有如图所示的图表,点击绿色的图标,然后就可以比较你的版本和源中代码的差别,然后就可以选择发送一个Pull request给主开发者,添加修改的原因描述。然后就等待主开发者去merge了。

7.抓取原始库最新的更新

抓取原数据库的更新,我们需要使用是git fetch upstream命令。这命令会自动选择更改过的代码文件进行更新。

github 修改fork的代码之后如何提交代码并pull request的更多相关文章

  1. 关于github在mac 10.10上无法提交代码的解决办法---备用

    接下来是正文:本文主要说明在mac 10.10版本下github无法提交代码的问题 首先如果你是一个用终端提交代码的,你可以不用看这篇文章了,这篇文章主要是用于解决github客户端提交代码的问题,此 ...

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

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

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

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

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

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

  5. Git如何fork别人的仓库并作为贡献者提交代码

    例如 要fork一份google的MLperf/inference代码,下面介绍具体做法:预备知识git里的参考有几种表示,分别是上游仓库,远程仓库和本地仓库,逻辑关系如下拉取代码的顺序:别的大牛的代 ...

  6. github提交代码contributions不显示小绿块

    问题描述: 最近发现一个问题就是不管是提交新增的代码还是修改后提交的代码在github的contributions上都不显示贡献小绿块. 于是我在 github help 里面找到了答案: 官方链接如 ...

  7. Git使用、Git配置、Git提交代码、Git上传

    非教程,只是自己的一个简单笔记.建议没有入门的朋友,直接看git的官方help文档: https://help.github.com/articles/set-up-git 1.注册一个git账号,超 ...

  8. 为什么Github要把代码合并请求称为pull request而不是push request?

    问题: 我的理解是:我做了一些修改,我请求把我的修改push到你的仓库,然后你review一下我的代码,如果没问题就接受请求merge,这样的话叫做push request岂不是更合适?因为这个操作是 ...

  9. sonarQube Github pull request扫描代码

    参考官方地址:https://docs.sonarqube.org/display/PLUG/GitHub+Plugin 运行环境:sonarQube6.2 + sonarScanner2.8 近来, ...

随机推荐

  1. 关于基于.NET Framework的网络通信程序底层扫盲

    引自<三维游戏引擎的设计与实现>书中9.3节:          如果服务端在.Net Framework基础上开发,那么可以直接选择使用.Net Framework提供的Socket类, ...

  2. java连接数据库URL

    转: 1.Oracle数据库 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url ...

  3. 关于UIWindow(转)

    (原文出自:http://www.cnblogs.com/wendingding/p/3770052.html,特别感谢) 一:[[UIScreen mainScreen] bounds] 和[UIS ...

  4. java小程序整理及排序算法

    1. 利用循环打印如下图形 ***** **** *** ** * public class Main { public static void main(String[] args) { // TO ...

  5. xml、 Dao service 三层参数以及对应关系

    =======service   调用dao用params.put(K,Value);将参数传入后台. BaseResponse response = new BaseResponse(); Map& ...

  6. mysql的内存表和临时表

    内存表: session $ mysql -uroot root@(none) ::>use test Database changed root::>CREATE TABLE tmp_m ...

  7. 160920、springmvc上传图片不生成临时文件

    springMVC上传图片时候小于10k不会再临时目录里面生成临时文件,需要增加一个配置 <property name="maxInMemorySize" value=&qu ...

  8. 关于web开发前端h5框架的选择

    关于web开发前端h5框架的选择 看了很多移动版框架都是基于app混合式开发的,不是单独h5网站的基于h5开发的web框架从组件丰富度,兼容性,相关教程来说bootstrap还是最好的react和vu ...

  9. Nginx+Keepalived实现 转载

    一.Keepalived简介 keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务 ...

  10. php curl语句的用法

    system32文件夹下,修改php.ini文件,找到;extension= php_curl.dll行,去掉前面的;号,保存,重启服务器.在站点目录下建立一个PHP文件,内容如下 $ch = cur ...