核心结论 github 是基于 Git 版本控制系统搭建的在线代码托管与软件开发协作平台,核心作用是存放项目源码,记录代码每一次修改历史,支持多人协同开发,还附带项目管理 文档编写 开源分享 自动化部署等配套功能,程序员个人可以用来备份自己的代码项目,团队可以用来分工写代码,全球大量开源软件都托管在 github 上面,它不只是单纯的网盘存代码,最重要的能力是版本追踪和协作,能够对比不同版本代码差异,回滚改错的代码,支持分支开发,避免多人同时修改代码互相覆盖,现在已经变成全球开发者最主流的代码社区,除了代码项目,也可以托管文档 静态网页 设计文件这类文本类项目。
平台底层原理
github 底层依赖 Git,Git 是本地运行的版本控制工具,github 相当于远程服务器,把本地 Git 仓库同步到云端,这样就算电脑损坏,代码和修改记录依旧保存在云端,团队成员可以把代码拉取到本地,修改完成之后再推送回远程仓库,多人并行开发的时候,使用分支功能,每个人在独立分支开发,测试没问题之后合并到主分支,这个机制解决传统多人传文件改代码容易版本混乱的痛点。
核心功能清单
第一 仓库管理,也就是 Repository,用来存放项目全部源码,仓库可以设置公开 Public,所有人都能查看,也可以设置私有 Private,只有授权成员可以访问
第二 版本历史记录,每一次提交 Commit 都会记录修改人 修改时间 修改内容,可以随时查看历史版本,出错直接回退
第三 分支 Branch,独立开发分支,适合新功能开发 bug 修复,不影响主线正式代码
第四 Pull Request,也就是合并请求,开发者提交代码之后发起 PR,其他人可以审查代码,评论意见,确认无误之后合并进主分支,是团队代码评审核心流程
第五 Issues,工单系统,用来记录 bug 需求 待办任务,跟踪项目进度
第六 Wiki,项目在线文档,编写使用说明 开发规范
第七 GitHub Actions,自动化工具,可以自动执行编译 测试 打包 部署,也就是 CI CD 持续集成能力
第八 GitHub Pages,免费静态站点服务,可以把仓库里面文档直接发布成网页
典型使用场景表格
| 使用人群 | github 主要用途 |
|---|---|
| 个人开发者 | 代码备份 开源项目发布 学习项目存档 |
| 开发团队 | 多人协同开发 代码评审 版本管理 |
| 开源社区 | 项目协作 接收外部贡献者提交代码 |
| 学生 | 练习编程 提交课程项目 查看开源源码学习 |
| 企业 | 内部私有仓库管理 开源项目对外维护 |
重要概念补充
Fork,就是把别人公开仓库复制一份到自己账号下,修改之后提交 PR 给原项目,这是开源贡献最常用方式
Star,收藏标记项目,相当于点赞,方便后续查找
Watch,订阅项目更新,项目有新提交或者新 issue 会收到通知
Clone,把远程仓库完整下载到本地电脑
和普通云盘的区别
普通云盘只负责保存文件,不会识别代码修改差异,也没有分支 代码评审 版本对比能力,github 专门针对代码开发设计,能识别文本逐行改动,支持开发流程管理,这是本质差别,普通云盘不能替代 github 做专业软件开发协作。
整体总结 github 是基于 Git 的云端代码托管协作平台,核心价值是代码版本管理 多人协同开发 开源项目共享,同时扩展了自动化 文档 静态网页发布等附加能力,是程序员开发工作非常常用的平台。
【常见问题】
问题 1 github 是干嘛的 普通非程序员可以注册使用吗
回答 1 github 是干嘛的,普通非程序员也可以注册账号,除了代码项目,还可以用来托管笔记 文档 静态网页,不强制要求必须写编程代码。
问题 2 github 是干嘛的 私有仓库需要付费吗
回答 2 github 是干嘛的,基础免费账号就支持创建私有仓库,只是免费版部分高级团队协作功能有数量限制,高级企业功能需要升级付费套餐。
问题 3 github 是干嘛的 它和 Git 是什么关系
回答 3 github 是干嘛的,Git 是本地版本控制软件,github 是搭载 Git 的在线云端托管平台,没有 Git 也可以单独在本地使用,github 只是远程托管服务。
问题 4 github 是干嘛的 上面下载的开源代码可以直接商用吗
回答 4 github 是干嘛的,开源项目都附带开源许可证,能不能商用要看项目对应的协议,不同开源协议授权要求不一样,不能默认全部开源代码都可以随便商用。
【免责申明】
本文内容仅作为平台科普参考,github 功能 套餐政策会随官方调整更新,开源许可证相关法律问题请仔细阅读项目协议,本文不作为法律 商业使用的唯一判定依据。


