DAG总览 / 组目录 / 前置概念

Git 与 GitHub(Git vs GitHub)

G00Layer 1
目录:前置概念账号与仓库版本管理协作项目管理自动化部署工具生态
层导航:L0L1 当前L2L3L4L5L6L7L8
上游 · 理解本功能前需先掌握的(1):
下游 · 依赖/承接本功能的(1):
前置依赖包含从属概念升级流程承接 边方向 = 学习顺序(A→B 表示先学 A 再学 B)

为什么需要它

心智模型

新手最常见的困惑就是:Git 和 GitHub 是不是一回事?不是。把它们混为一谈,后面看教程会处处卡壳。打个比方:Git 是你的个人写作工具(本地笔和纸),GitHub 是公共图书馆(把写好的内容放上去展示、借阅、共同修改)。分清两者,你才能知道哪些操作在本地做、哪些在网页上做。

历史背景 · 它为什么诞生诞生于 2005-2008
诞生Git:Linux内核早期靠补丁文件传递代码,2002年起用商业工具BitKeeper;2005年BitKeeper免费许可取消,Linus Torvalds两周内自研Git。GitHub:Git缺托管与协作层——没有统一存放代码的地方、没有易用的协作界面,2008年由Tom Preston-Werner等创建,以"Social Coding"为理念。
演进Git从2005年首版演进为易用工具,2005年7月起由Junio Hamano维护。GitHub从"代码托管"演变为完整协作平台(Fork/PR/Issues/Pages/Releases/CI),2018年被微软收购,使Git成为开源协作的基础设施。
历史教训
被逼无奈的原生需求往往催生最坚固的设计;底层协议成功不代表产品完整,托管与协作层是规模化使用的关键;生态与网络效应远比工具本身值钱。

功能介绍

Git 是一个运行在你电脑上的版本控制工具(version control tool),负责在本地记录代码历史、创建分支、合并改动,全程不需要网络。GitHub 则是基于 Git 的代码托管平台(code hosting platform)和协作社区:官方定义为'GitHub 的核心是一个开源的版本控制系统,叫做 Git'。也就是说,GitHub 在 Git 之上提供了网页界面、远程仓库存储、Issues 讨论、Pull Request 代码审查等功能,让多人协作和开源共享变得简单。你可以只用 Git 完全不碰 GitHub,但用 GitHub 时底层一定依赖 Git。关系可以概括为:Git 是引擎,GitHub 是装了引擎的车。

核心术语

Git:本地的分布式版本控制工具GitHub:基于 Git 的代码托管平台与协作社区托管平台(hosting platform):存放并展示代码的云端服务远程仓库(remote repository):托管在 GitHub 服务器上的仓库副本

适用场景

怎么操作(网页 vs 命令行 双轨)

🖱️ 网页操作 (GitHub.com)
  • 注册 GitHub 后,通过网页创建仓库(Repository)来托管代码
  • 在仓库网页上直接浏览代码、查看提交历史、发起 Pull Request
  • 在网页设置中配置远程仓库地址,供本地 Git 推送使用
⌨️ 命令行 (进阶)
  • git init # 在本地把目录变成 Git 仓库(本地用 Git)
  • git push origin main # 把本地提交推送到 GitHub(衔接两者)
  • git pull origin main # 从 GitHub 拉取最新改动到本地

新手建议先从网页操作入手,熟悉概念后再尝试命令行。命令行是真实开发中更常用的方式。

与其他功能的关系

关系(前置依赖 / 包含从属 / 概念升级 / 流程承接)说明
概念升级版本控制基础(Version Control Basics)先理解版本控制思想,才能分清 Git 工具与 GitHub 平台
流程承接账号与个人主页(Account & Profile)明白 GitHub 是什么后,注册账号开始使用平台

官方文档

小结

SUMMARY

Git 是本地版本控制工具,GitHub 是基于 Git 的云端托管与协作平台。遇到操作先想一句:这一步在本地还是网页?理清边界,后面 13 个节点就会顺畅很多。下一步:注册账号并搭建你的个人主页。