作为著名全球最大同性交友社区网站,很多开发人员每天工作中都会用到 GitHub。

外人很难理解程序员们有多爱这只..章鱼猫?

在上面找项目、写代码可以说是每个程序员的日常了。

那么什么是 GitHub?为什么要用 GitHub?怎么用 GitHub?对于这些问题,最近在 GitHub 上出现了一篇面向 GitHub 新手的使用指南,详细解释了 GitHub 上的一些重要概念,集智对这篇 GitHub 入门帖子《A Developer’s Introduction to Github》进行了编译。

GitHub简介

简单来说,GitHub 是一个面向开发人员的网站,每天会有数百万的开发者聚在上面,一起讨论开源软件和项目。网站上也汇存了多达数十亿行的代码,用户也可以在上面报告使用软件和编程时遇到的问题。

总之,这是个为软件开发人员构建的平台,是围绕 Git 构建的。要么分享自己的代码,要么使用别人的代码。下面我们会解释 GitHub 上的一些重要概念,如何利用 GitHub 的功能让自己更高效的工作,以及如何将其它应用整合到你自己的编程工作中。

为什么要用GitHub?

现在你已经知道什么是 GitHub 了,那你可能就要问了:为什么要用它?

毕竟 GitHub 是由私人公司管理,并且该公司通过托管代码进行获利,那么为什么该用 GitHub,而不是 BitBucket 或者 GitLab 这样类似的平台呢?

除了个人偏好和技术原因外,还有一个很大的原因:几乎每个开发人员都在用GitHub,这就产生了巨大的网络效应。

主要的代码库随着时间推移已经从其它版本的控制系统迁移到了 Git 上,因为它更加便捷, GitHub 也一直投入很大的精力,努力满足开源社区的需求。

因此,今天不管你找什么样的程序库,99% 的情况下,你都能在 GitHub 上找到。原因就是用户多,资源也就多。

除了开源代码之外,很多开发人员能在 Github 上托管私人仓库(repository),因为这在 GitHub 上非常方便。

GitHub issues 是世界上最受欢迎的 bug 跟踪系统之一。它让项目所有者能够组织、标记和指派重要的 issue。如果你在其他人管理的项目上打开某个 issue,它会一直处于打开状态,直到你主动将它关闭(例如你知道了问题所在)或者项目所有人关闭了这个 issue。

有时你会得到明确的答案,在其它时候这个 issue 会呈打开状态并被标记上一些分类信息,然后开发人员可以回到这个 issue 解决问题,或根据反馈优化代码库。

大多数开发者在 GitHub 发布代码后,维护代码都没有直接报酬,因此通常你不会收到他们的即时回复。但一些开放源代码库由那些围绕该代码提供服务的公司发布,它们会提供具有更多功能的版本或者使用基于插件的系统。

社交编码

几年前GitHub上增加了“社交编码”(social coding)的标签,这是什么意思呢?和 GitHub 有什么关系?

并不是指“社会型编程”

在 GitHub 上,你可以在一些开发者的个人主页上点击“follow”来关注他们。

你也可以通过点击某个仓库上的“Watch”按钮来关注它。

不管是关注某个人还是某个仓库,都会显示在你的 dashboard 上。在 GitHub 上关注用户和仓库,跟你在 Twitter、微博上关注人不一样,你看不到他们说什么,但能看到他们做什么。

Stars

GitHub 的一大特点就是能给仓库添加星标。通过这步操作,你可以将仓库添加到“starred repositories”(已加星标仓库)的列表中,这样你就能发现自己感兴趣的项目。而且这也是 GitHub 上一个重要的排名机制之一,因为一个仓库或项目的 star 数越多,就说明它越重要越受欢迎,在搜索结果中也会处于更显眼的位置。一些很重要的项目可能有多达几万个 star 数。

GitHub 同样也有一个 trending 页面,它会显示特定时间内,比如今天、本周或本月,获得 star 数最多的仓库或项目。

Fork

项目的最后一个重要指标就是 fork 数。

这是 GitHub 如何工作的关键,因为 fork 是 Pull Request(PR)的基础,它是一个更改提议。某人可能会 fork 你的仓库,做些改动,然后创建一个 PR 让你去合并这些改动。

有时 fork 仓库的人可能也从来不让你去合并什么东西,只是他们很喜欢你的代码,决定在上面加点东西,或者修复了他们在体验过程中遇到的bug。

受欢迎=更好

言而总之,上面这些都是一个项目受欢迎度的重要指标。除此以外,项目最近一次提交的日期和作者参与 issue 跟踪系统的信息,也是衡量仓库或软件可信度的标准之一。

Pull Requests

在前面介绍了什么是 Pull Request(PR)。总之,一个人可以 fork 你的仓库,做一些改动,然后创建一个PR让你去合并这些改动。

某个项目可能会有几百个PR,总的来说,一个项目越受欢迎,PR 就越多,如 React 项目:

一旦有人提交了 PR(在 GitHub 界面上很容易操作),项目的核心维护人员会对其进行审核。

根据你的 PR 的范围不同(改动数量,或者改动影响幅度,以及涉及代码的复杂程度等),维护人员可能需要不同的时间来确认这些改动和项目是否兼容。

一个项目可能会有相关改进的明确时间表。维护人员希望用户能以比较简单的方式介绍 PR 中的体系结构。

也就是说,并不是每个 PR 都会被立刻接受,甚至都不能保证 PR 最终被接受。

在上面所举的例子中,仓库中甚至有个一年半以前的 PR,几乎所有的项目中都存在这种情况。

项目管理

除了 issue 之外,也就是开发者获得来自用户反馈的地方,GitHub 界面上还有其它帮助项目管理的功能。

其中一个就是 Projects,虽然它在 GitHub 的生态系统中比较新,用的人也不是很多,但它相当于一个看板,能帮助你组织问题和需要完成的工作。

Wiki 可以被用作文档。另一个受欢迎的项目管理功能是“里程碑”(milestone),它在 issue 页面上,你可以将 issue 分配给特定的 milestone,可以是发布目标。

说到发布,GitHub 通过引入发布增强了 Git tag 的功能。

Git tag 是特定 commit 的指针,如果完成的时间一致,能帮你回到之前版本的代码,无需引用特定的 commit。

Github 的发布版建立在 Git tag 的基础之上,代表了你的代码的完整发布版本,以及 zip 文件,发布说明和二进制 assets,这些可能代表了你的代码终端产品的完整工作版本。

虽然可以通过写程序创建 Git tag(比如使用命令行 Git 程序),但创建 GitHub 发布版需要手动操作,在 GitHub UI 上进行。你可以在 GitHub 上创建一个新版本,选择你想使用的 tag 发布。

比较commit

GitHub 提供了很多处理代码的工具。

你最想做的事情之一,可能就是将一个分支与另一个分支相比较。你可能想将最新的 commit 与你当前所用版本进行比较,看看发生了哪些变动。

你可以用 GitHub 上的比较视图进行这项操作,只需在仓库名字后添加 /compare 即可。例如:

facebook/react

例如,这里我选择将最新的 React v15.x 和最新的 v16.0.0-rc 版本进行比较,查看有哪些改变:

我们会发现两个发布版本之间的 commits 不同之处和实际差异。

Webhooks和Services

GitHub 提供了有助于开发者工作流程的功能,其中一个就是 webhooks,另一个是 services。

  • Webhooks

当仓库出现特定问题时,webhooks 就会触发外部服务,比如当推送代码时,创建或删除了 tag,或者有人 fork 了仓库等。

当发生问题时,GitHub 会给我们让它用的 URL 发送 POST 请求。

这项功能的一个常见用法是当我们从本地计算机发送一个更新时,它会触发一个远程服务器从 GitHub 获取最新代码。

  • Services

GitHub service 和新的 GitHub 应用都是第三方集成程序,能够改善开发者的使用体验或提供服务。

例如,你可以设置一个测试运行器,每次用 TravisCI 推送一些新 commit 时都能自动运行测试。

你可以用 CircleCI 设置 continuous integration。也可以创建一个 Codeclimate 集成程序来分析代码,它还能提供 technical debt 和测试覆盖率的报告。

结语

总之,GitHub 是个很了不起的工具和服务平台,也是当今开发者们不可或缺的开发神器。本文只是帮你简单了解一下 GitHub,到上面真正体验一下你就知道它的魅力了。

∞∞∞∞∞

IT派 - {技术青年圈}
持续关注互联网、区块链、人工智能领域

公众号回复“讨论”,

邀你加入{IT派互动讨论群}

著名全球最大同性交友社区网站相关推荐

  1. 全球最大同性交友网站必备的五大神器!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来自:程序员Github 对于程序员来说,GitHub ...

  2. 全球最大“同性”交友网站GitHub或被微软收购,收购价可能高达 50 亿美元

    来源:综合businessinsider.venturebeat 编译:刘小芹 原文:http://www.sohu.com/a/233803905_473283 [新智元导读]据外媒Business ...

  3. 从全球最大同性交友网站抄了一份不一样的2048小游戏

    大家好,我是"前端点线面",一位新生代农民工,欢迎关注我获取最新前端知识和<前端百题斩>pdf版(包括JS基础篇.浏览器篇.网络篇共计50个章节,5万多字),此外有喜欢 ...

  4. 玩转全球最大同性交友网站--- 开源社区GitHub

    1. 你是否有过这样的需求? 刚接触github,被一堆菜单选项搞得头大, 不知道怎么玩 想做一个网站,发布到公网, 让所有的人都可以访问到 希望全面知晓github一个开源项目的结构,也能像其他大神 ...

  5. 全球最大同性交友网站,已经10岁了!

    本文转自硅星人(ID:guixingren123) 作者:光谱 1999 年上线的 SourceForge,因为免费一度是世界上最受欢迎的开源软件代码托管网站.然而 Google 担心它一家独大,上线 ...

  6. 全球最大同性交友平台骚操作

    文章目录 搜索 快捷键 高亮显示 插件 github作为全球最大代码库,日常学习or工作都离不开她,这里介绍一些平时使用方面的技巧. 搜索 比如我们需要搜索spring boot相关的项目,如果直接搜 ...

  7. 全球最大同性交友平台的“黑历史”

    参考资料: https://www.linuxjournal.com/content/git-origin-story https://www.linuxfoundation.org/blog/201 ...

  8. 全球最大同性交友网站GitHub发布了年度开发者报告,提到了这些关键数据

    编辑 | 雨多田光 10 月 10-12 日,GitHub Universe 大会在旧金山召开,GitHub 官网也发布了 2017 年年度数据报告.今年的数据让人眼前一亮,我们将目光聚焦在其中几个点 ...

  9. 全球最大同性交友网站的所有用户密码都无法登录!!!

    一.前言 有一个多月没有提交代码了,今天提的时候怎么也提交不上去. 意思是你原先的密码凭证从 2021 年 8 月 13 日开始就不能用了,必须使用个人访问令牌(personal access tok ...

最新文章

  1. 美国宇航局:十年内VR/AR设备将成为标配
  2. opc服务器状态红叉,西门子S7-300与上位机通过OPC服务器的通讯设置分解.pdf
  3. 服务端解决跨域问题的方案(二)
  4. leetcode问题:PlusOne
  5. argparse、glob、findall
  6. 【数字图像处理系列五】图像滤波之空间滤波:图像平滑降噪和图像锐化
  7. Java编程练习题2
  8. Git利用命令行提交代码步骤
  9. 投资速度对天使投资人很重要——九合创投王啸
  10. python写一个表白程序带时间_python如何写出表白程序
  11. YouTube网红营销的意义
  12. 用vue2写的开发者在线简历导出
  13. 职场人士需了解:职场文件删除了三种恢复方法
  14. 集合——Collections
  15. 作为一个UI设计师的3个基本素养,你具备哪些?
  16. 阿里云的「香港」机房大陆访问速度怎么样?
  17. 掘安杯原题复现---Web签到题
  18. oracle exp导出很慢,oracleexp导出慢
  19. 搭了我半年顺风车的同事,把我拉黑了:和任何人走太近,都是一场灾难
  20. 依据Nvidia RTX2080TI算力来分析自动驾驶算力需求

热门文章

  1. 综述 | 实例分割研究
  2. eclipse网络连接代理设置
  3. 老java手机有什么什么用,80后熟悉的这些手机功能,用过3种以上说明你已经老了...
  4. 迅为嵌入式linux驱动开发笔记(十一)—触摸屏驱动
  5. c语言程序设计第五版第三章课后题
  6. solidworks中开孔绘制螺纹孔
  7. RHCE认证考试心得(转)
  8. 【注释张豪华版 Path酷炫动画】极速get花式Path (支付宝支付成功动画)
  9. qa158.cn kuais.php,qukuaigou.skhjcf.com
  10. Oracle11g R2相比R1的区别