前面的文章介绍了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. javascript入门篇(五)

    将日期转换为数字 全局方法 Number() 可将日期转换为数字 d = new Date(); Number(d)          // 返回 1404568027739 日期方法 getTime ...

  2. Hello World 程序的起源与历史

    这是一个最著名的程序.对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序.那么,这个著名的程序究竟从何而来呢? 实际上,这个程序的功能只是告知计算机显示 Hello World 这句话 ...

  3. 解决ruby安装后无法添加淘宝gem源------------学习记录

    使用sass ,需要安装ruby,会建议移除gem源,添加淘宝的gem源,但是淘宝的镜像源已经停止维护啦!!用https://gems.ruby-china.com 代替即可. 操作如下: 1)删除原 ...

  4. 好看又能打的CRM系统大比拼:Salesforce, SugarCRM, Odoo等

    介绍 今天的CRM市场提供了大量的解决方案和软件替代品.有些适合大型企业(通常需要内部托管),而其他企业则更多地应用于SME的需求(通常使用云托管解决方案). 在CRM解决方案方面,提供商必须调整其产 ...

  5. Android values资源的定义

    Android values资源是Xml格式的文件 上图定义了颜色(colors)字符串(strings)样式(style)三个资源文件 xml文件写在resources标签里 <?xml ve ...

  6. winfrom SVG转Imge

    svg矢量图的使用,将svg矢量图展示在pictureBox上,拖动可以应用到其他设计软件上,复杂一点,中间涉及到SVG的下载  以及  SVG转化为 图片等操作 效果图如下: 源码下载地址: htt ...

  7. C#异步编程----Thread

    一.问题由来 多线程能实现的基础: 1.CPU运行速度太快,硬件处理速度跟不上,所以操作系统进行分时间片管理.这样,宏观角度来说是多线程并发 ,看起来是同一时刻执行了不同的操作.但是从微观角度来讲,同 ...

  8. C# 三种打印方式含代码

    一:C#代码直接打印pdf文件(打印质保书pdf文件) 引用: 代码注释很详细了. private void btn_pdf_Click(object sender, RoutedEventArgs ...

  9. vscode创建net core控制台程序

    vscode近来深受的开发人员的喜爱.在下的前端同事们也纷纷使用vscode.在下就想了我等后端程序员也可以用vscode写C#代码.毕竟是从宇宙第一IDE  ----Visual Studio衍生的 ...

  10. 【Hadoop篇】--Hadoop常用命令总结

    一.前述 分享一篇hadoop的常用命令的总结,将常用的Hadoop命令总结如下. 二.具体 1.启动hadoop所有进程start-all.sh等价于start-dfs.sh + start-yar ...