接上文:大多数时候我们也需要把别人的代码进行整合和修改,而不是简单的修改,这时就需要对一个项目进行修改。

注意,本系列文章主要说明在github网站上的操作,更多高级操作请使用git控制台

一、fork一个项目

打开一个项目,点击界面右上角的的“fork”,就会在你自己的项目库里创建一个代码的拷贝。

这份代码的主人就是你,你可以对代码进行任何修改。比如在此我fork了一个比特币的项目 https://github.com/bitcoin/bitcoin

进入自己的主页后看到有了一份项目的拷贝,而且和原来的项目一模一样。

画线部分体现了这个项目的源头,底部是项目的文件。接下来就可以对这个项目进行一系列的操作。

二、修改项目

git重要的功能就协作开发。当我们觉得代码有必要进行修改的时候,可以修改,并把更改提交给代码原始的主人,这样就完成了一次代码的协作。

点击我们项目中的某一个文件。可以看到这个文件的内容

其中上面的 contributor是这个文件的贡献者,他们为这个文件的编写做出了贡献。

如果你也想做贡献,就点击EDIT,进入编辑状态

添加一些文字

然后把我们的更改进行提交(commit),提交时要填写这次修改的内容,让其它人清楚修改了什么内容。填写完毕后点击commit changes,这时代码进行了更新,contributor里也看到了我的ID~!

三、提交修改申请

注意:刚才我们所做的内容都是在 自己的项目下进行的,举个例子,是在 icyfox-bupt/bitcoin 下进行的, 原始的项目 bitcoin/bitcoin 并没有发生变化。毕竟如果这样就可以修改代码的话也太不安全了!

如果想把我们的代码同步到原项目中,需要向原项目主提交申请:

回到项目首页,点击Pull Request,新建一个PR(Pull Request),在接下来的页面中会显示这次提交对代码所做的改动。

确认无误后点击上方的Create Pull Request,然后进行代码说明,再点击Send Pull Request,完成这次PR的申请。

这样在原项目的Pull Request列表里,就会出现我们的这一条。

原项目的作者可以判断我们的代码是否有用,来决定是否合并。当然由于我们的代码完全是无效的,所以一定会进入close中。

以上是在github网站上对项目进行git操作的一些步骤,注意这些操作都是网页操作,如果要正经的使用,还是要使用git bash这样的控制台。

转载请注明来自:http://blog.csdn.net/icyfox_bupt/article/details/23305039

GitHub入门之二 参与一个项目编写的更多相关文章

  1. github如何多人开发一个项目

    github如何多人开发一个项目 一.总结 一句话总结:a.点项目里面的Settings->Collaborators,来添加参与者(比如github用户名), b.向他发送项目的link,让他 ...

  2. github入门到上传本地项目【网上资源整合】

    [在原文章的基础上,修改了描述的不够详细的地方,对内容进行了扩充,整合了网上的一些资料] [内容主要来自http://www.cnblogs.com/specter45/p/github.html#g ...

  3. github入门到上传本地项目

    GitHub是基于git实现的代码托管.git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好. GitHub可以免费使用,并且快速稳定.即使是付费帐户,每个月不超过10美刀的费用也非常便宜. ...

  4. 【github&&git】2、github入门到上传本地项目

    [在原文章的基础上,修改了描述的不够详细的地方,对内容进行了扩充,整合了网上的一些资料] [内容主要来自http://www.cnblogs.com/specter45/p/github.html#g ...

  5. <转>github入门到上传本地项目

    转自 http://www.cnblogs.com/specter45/p/github.html GitHub是基于git实现的代码托管.git是目前最好用的版本控制系统了,非常受欢迎,比之svn更 ...

  6. 【Git】GitHub之多人开发一个项目

    首先我们要简单知道github跟Git的区别.git是版本控制工具, github是一个面向开源及私有软件项目的托管平台,也是程序员交流的地方. 接下来就开始讲怎么多人一起开发. 首先我们先拥有git ...

  7. C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)

    一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...

  8. springboot2.0入门(二)-- 基础项目构建+插件的使用

    一.idea中新建第一个HelloWorld项目 点击next: 下一步 在这里可以选择我们需要依赖的第三方软件类库,包括spring-boot-web,mysql驱动,mybatis等.我们这里暂时 ...

  9. 无废话MVC入门教程二[第一个小Demo]

    mvc技术交流,欢迎加群: 本文目标 1.了解"模型"."视图"."控制器"的创建.调试和使用过程. 本文目录 1.创建模型 2.创建视图 ...

随机推荐

  1. C# Sqlite 序列

    sqlite 不能直接创建自定义函数,不能像 sql server中那样方便创建并使用.不过我们照样可以创建它,创建成功后,我们照样可以随心所欲(比如批量更新等) 序列是一个数据库中很常用的操作,在其 ...

  2. Tomcat一些小事

    1.编码问题 1.1.乱码 客户端发请GET请求,如果这个请求地址上有中文,而且也没有进行encode的时候,后端就可能接收到乱码. --解决办法 在tomcat , conf/server.xml ...

  3. CSS3 实现简单轮播图

    用css3动画实现图片切换效果,原理还是改变left值.只有最简单的自动播放功能,切换后短时间静止,通过最后的位置克隆第一张图片,实现无缝切换. html结构 <div id="con ...

  4. Atitit.atiInputMethod v2词库清理策略工具    q229

    Atitit.atiInputMethod v2词库清理策略工具    q229 1.1. Foreigncode 外码清理1 1.2. 垃圾词澄清1 1.1. Foreigncode 外码清理 On ...

  5. ArcGIS 10 SP5中文版(ArcGIS10补丁5中文版)

    下载地址:百度网盘下载地址:http://pan.baidu.com/s/1o7qPGhk 来自:http://zhihu.esrichina.com.cn/?/sort_type-new__day- ...

  6. 【读书笔记】iOS-防止通讯协议被轻易破解的方法

    开发者可以选择类似Protobuf之类的二进制通讯协议或者自己实现通讯协议,对于传输的内容进行一定程度的加密,以增加黑客破解协议的难度. 参考资料: <iOS开发进阶> --唐巧

  7. JAVA基础学习day19--IO流一、FileWrite与FileReader

    一.IO简述 1.1.简述 IO:input/output IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中. 1.2.结构 字节流抽象类: ...

  8. NSTimer scheduledTimerWithTimeInterval与timerWithTimeInterval、initWithFireDate的区别

    英文原文是这样的: A timer object can be registered in only one run loop at a time, although it can be added ...

  9. Web应用程序系统的多用户权限控制设计及实现-登录模块【4】

    通过前三个模块的介绍,把web权限系统开发所需要的基本类,Css文件,EasyUI框架等准备好后,就可以着手开始系统的编码了. 登陆模块是权限处理系统的关键,根据输入用户的的信息,可自动从数据库中加载 ...

  10. iOSQuartz2D-04-手动剪裁图片并保存到相册

    实现效果 操作步骤 绘制一个矩形框,弹出一个alertView,提示是否保存图片 点击"是",将图片保存到相册 在相册中查看保存的图片 效果图 实现思路 在控制器的view上添加一 ...