前面的文章介绍了Git的基本概念和用法,本文则是基于GitHub的一个实践介绍,主要内容有:

GitHub简介

  GitHub是一个Git的远程代码托管平台,它除了提供代码托管外,还提供了如问题发布、pull request、报表统计等功能,下图为EFCore项目的贡献者统计信息:

  

  GitHub提供了一整套远程协作的解决方案,所以是开源项目的首选平台,许多知名项目都托管在GitHub上。
  GitHub可以免费的创建自己的开源代码仓库,同时有付费服务,如私有仓库、GitHub的企业解决方案等。

个人与组织

  GitHub中提供了个人仓库和组织仓库,分别适合个人开源项目以及组织开源项目。
  个人仓库主页:

  

  组织仓库首页:

  

  创建组织:

    

  填写组织信息:  

  

仓库的创建与维护

  1.创建一个仓库(个人和团队仓库创建类似,下图是团队仓库)

  

  2. 仓库的维护:
  针对每一个仓库,GitHub提供了代码管理(Code)、问题管理(Issues)、拉请求(Pull Request)、项目管理(Projects)、百科(Wiki)、统计(Insights)、仓库设置(Settings)功能,通过这些功能可以对代码仓库进行维护:

  

Fork与Pull request

  Fork和Pull request是GitHub上完成代码共享的核心功能,下面就介绍如何使用Fork和Pull Request完成代码贡献:
  1. 将贡献目标仓库Fork到自己的仓库中:

  

  

  2. 获取Fork后的仓库,获取并对代码进行修改最后推送到远程分支(直接使用master分支):

  

  修改代码后将修改的内容推到远程仓库:

  

  注:更多使用Git的内容参考:《好代码是管出来的——使用Git来管理源代码》以及《好代码是管出来的——Git的分支工作流与Pull Request》。

  3. 发起Pull Request:

  

  创建新的pull request将会显示以下信息(代码由SelimTeam仓库合并到yqszt的仓库、代码是可合并的以及代码差异信息):

  

   当点击“Create Pull Request”按钮后,该请求将会被创建。

   4. 处理Pull Request:
   yqszt/MyBlog库拥有者,可以在pull request选项卡中看到相应的信息并进行合并:

  

  文件差异:

  

  合并Pull Request:

  

  合并结果:

  

    

小结 

  本文介绍了如何使用GitHub来个人/团队代码仓库,对于一个GitHub仓库来说除了提供基础的代码版本管理功能以外还提供了问题管理、项目管理、百科、拉请求、数据统计等功能,仓库的拥有者(开发者)可以使用GitHub进行项目管理、代码管理,还可以将相关知识通过百科进行发布,以便于项目的受益者、贡献者能够快速获得项目信息,而贡献者除了可以通过Wiki获取信息外,还可以Issue、Pull Request对项目提出疑问或进行贡献,拥有者和贡献者所有的沟通都可以通过Github来完成。
  另外Github的fork与pull request实际上就是上一篇文章中提到的“集成管理者工作流”的实现,其中在对pull request的代码进行合并时,实际上还强制进行了代码审查,这种工作流模式即适合本地的开发团队,也适合开发人员来自世界各地的开源项目。
  从这些方面看来Github不再是一个简单的Git远程仓库托管平台,而是一个分布式的软件开发管理解决方案。

  PS:Github被微软收购,今后Github又会与.Net生态圈擦出什么样的火花?拭目以待。

本文链接:https://www.cnblogs.com/selimsong/p/9135514.html

好代码是管出来的——浅谈.Net Core的代码管理方法与落地(更新中...)

好代码是管出来的——使用GitHub的更多相关文章

  1. 给大家推荐一款高大上的代码高亮插件(sublime,github风格)——highlight.js

    经常在一些大神博客里面看到非常好看的高亮代码,有sublime风格,GitHub风格等等.毫无疑问,好的高亮代码插件可以不仅仅让你的博文显得更高大上,更重要的是舒适的阅读体验.经过我在网上的一番搜罗, ...

  2. Git学习(2)-使用Git 代码将本地文件提交到 GitHub

    上次随笔写到git的安装和运用命令窗口创建本地版本库,这次主要讲一下用git代码将本地文件提交到GitHub上. 前提是有一个GitHub账号. 1.创建一个新的版本库,进入到你本地项目的根目录下(我 ...

  3. 使用pycharm开发代码上传到GitLab和GitHub

    使用pycharm开发代码上传到GitLab和GitHub 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我这里主要是针对局域网的自减的GitLab服务器,python开发工程师如 ...

  4. 将本地的代码推送到公网的github账号去

    将本地的代码推送到公网的github账号去 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近工作上需要用到github账号,拜读了一位叫廖雪峰的大神的文档,把git的前世今生说的 ...

  5. iOS:使用Github托管自己本地的项目代码方式二(客户端方式: Github Desktop)

    管理代码的地方主要有:Github(国外流行).CocoaChina.Cocoa4App.中国开源社区.CSDN.博客园.简书等等..... 前面已经介绍了如何使用命令行和Xcode将本地代码上传到G ...

  6. github:当你想要使用VSCODE开心提交代码时,出现Git:git@github.com:Permission denied(publickey)解决方案

    当你想要使用VSCODE开心提交代码时,出现Git:git@github.com:Permission denied(publickey)弹框 图片: 原因:电脑公钥(publickey)未添加至gi ...

  7. API Studio 5.1.2 版本更新:加入全局搜索、支持批量测试API测试用例、读取代码注解生成文档支持Github与码云等

    最近在EOLINKER的开发任务繁重,许久在博客园没有更新产品动态了,经过这些日子,EOLINKER又有了长足的进步,增加了更多易用的功能,比如加入全局搜索.支持批量测试API测试用例.读取代码注解生 ...

  8. 原创炫酷代码公开——连接董铂然github

    公开了github部分项目(均为原创)更多代码请看https://github.com/dsxNiubility SXWaveAnimate Wonderful SXPhotoShow SXNews ...

  9. 好代码是管出来的——使用GitHub实现简单的CI/CD

    软件开发一般来说是一项团队作业,在本系列文章开始就提到过软件的编码是由一个团队“并行”完成的,为了保证编码任务正常完成,首先引入版本控制工具来完成代码管理,为了保证代码质量引入了代码分析器以及代码测试 ...

随机推荐

  1. 在MySQL中实现Rank高级排名函数【转】

    MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名.尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名 ...

  2. Challenges-XSS

    https://alf.nu/alert1 warmup adobe JSON

  3. Android开发—— Tablayout的使用

    Tablayout的使用 属性 属性名 说明 app:tabMod 设置Tab模式 app:tabTextColor 设置文本颜色 app:tabSelectedTextColor 设置选中文本颜色 ...

  4. keil4编译Error: User Command terminated, Exit-Code = 1解决

    编译出错结果如下图: 通过分析可看出,错误原因是:调用fromelf.exe指令的路径不对.Keil中设置的是 E:\Keil\ARM\BIN40\fromelf.exe(安装Keil位置不同,此处显 ...

  5. FPGA高速ADC接口实战——250MSPS采样率ADC9481

    一.前言 最近忙于硕士毕业设计和论文,没有太多时间编写博客,现总结下之前在某个项目中用到的一个高速ADC接口设计部分.ADC这一器件经常用于无线通信.传感.测试测量等领域.目前数字系统对高速数据采集的 ...

  6. 解决Windows10运行VMware Workstation出现与Device Guard不兼容导致无法运行与创建虚拟机问题

    问题表现如下: 1.有Hyper-V功能未关闭的可能, 随便贴一个链接,网上一样的方法很多: https://jingyan.baidu.com/article/9f63fb916b50e1c8400 ...

  7. 再谈AbstractQueuedSynchronizer1:独占模式

    关于AbstractQueuedSynchronizer JDK1.5之后引入了并发包java.util.concurrent,大大提高了Java程序的并发性能.关于java.util.concurr ...

  8. Java体系学习书籍推荐

    以下所有资料均可在:Java知识分享网下载. 大家有推荐的书可以在下方留言! 开源代码GitHub仓库总结 计算机基础 计算机科学导论  --(如果不是计算机科班的,应先看看计算机基础,了解一些基本概 ...

  9. 由一个emoji引发的思考

    由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...

  10. 读Cassandra源码之并发

    java 并发与线程池 java并发包使用Executor框架来进行线程的管理,Executor将任务的提交与执行过程分开,直接使用Runnable表示任务.future获取返回值.ExecutorS ...