← ELI5 合集 EN
一看就懂

GitHub
到底是什么

全套讲一遍 · 讲给一行代码都不写的人
第 6 期电脑和网络里的事第 4 / 20 篇
1

一句话

GitHub 是全世界写程序的人
共用的一个
「带时光机的文件柜」。

它存的不是文件的最新样子,而是这份东西从第一天到今天的每一次改动。任何一天想回去,都回得去。

2

先破一个
最大的误会

你以为的
一个网盘
传上去、存着、要用的时候下下来。旧的被新的盖掉。
实际上的
一本流水账
它记的是"谁、在哪天、把哪一行从什么改成了什么"。旧的一条都不会丢。

说白了:网盘管"现在长什么样",它管"一路是怎么变成这样的"。

3

一个比喻
能通吃全套

每一个圈 = 一个存档点 像打游戏一样,一路存着走

把它当成打游戏的存档。

每干完一小块活,就存一次档,并且写一句"我这次改了啥"。存过的档永远在,随时能读回去。GitHub 上八成的名词,拿这个比喻都能解释通。

4

一个人
是怎么用的

① 开一个柜子repository 仓库——放这一个项目全部东西的那个柜子,一个项目一个
② 存一次档commit 提交——把这次改动定格下来,还得写一句说明"我干了啥"
③ 想试新东西就分个岔branch 分支——从某个存档点另开一条平行线折腾,不影响正在用的那份
④ 试成了就并回来merge 合并——把平行线上的成果并进主线;没试成,整条线扔掉就行,主线毫发无伤
⑤ 推到网上push 推送——把本机的存档同步到 GitHub 上,别人才看得见。反过来拉下来叫 pull

一个人干活,到这五步就够用了。下面开始才是"多人"的部分。

5

多个人
怎么不打架

这是 GitHub 真正的价值。几百个互不认识的人改同一个东西,还不乱,靠的是一条规矩:谁都不能直接动主线。

① 先复制一份fork 分叉——把别人的整个柜子原样复制到你自己名下,随便改,不碰人家的
② 改完打个招呼pull request 合并请求——"我改好了,您看看能不能收",附上改了哪几行
③ 有人过目review 评审——管这个柜子的人逐行看,能提意见、能打回、也能直接点头
④ 点头才并进主线过了这一关,你的改动才真正进到大家用的那一份里

说白了:主线是公家的,想动得先递条子、先有人签字。这套规矩就是它不乱的全部秘密。

6

页面上
那些按钮

Issue报事本:发现问题或想提建议,在这儿开一条,大家在下面讨论
Star点赞加收藏:说"这东西不错",顺便存进自己的收藏夹
Watch关注:这个柜子一有动静就通知你
README柜子门口那张说明书:这是什么、怎么用。打开一个项目先看它
Actions自动流水线:你一存档,它自动跑检查、自动发布,不用你动手
绿格子个人主页那面墙:哪天存过档哪天就变绿,一年下来像一张出勤表
7

一张
名词对照表

看到不认识的词回来查这张,不用背。

Git基础工具
记录改动的那套本事本身,装在你自己电脑上,没网也能用
GitHub网站
把这套本事搬到网上、还加了协作功能的那个地方。Git 是本事,GitHub 是场地
Repository仓库
一个项目的柜子,里面是全部文件加全部历史
Commit提交
存一次档,附一句"这次改了啥"
Branch分支
从某个存档点分出去的平行线,试错专用
Main主线
大家真正在用的那条线,通常最干净、最不能乱动
Merge合并
把平行线的成果并回主线
Conflict冲突
两个人改了同一行,机器不敢替你决定,得人来选留哪个
Clone克隆
把网上的柜子整个拉到自己电脑上
Fork分叉
把别人的柜子复制一份挂到自己名下
Push / Pull推 / 拉
把本机的改动送上去 / 把网上的改动取下来
Pull Request合并请求
"我改好了,请过目"——协作里最常听到的那个词
Issue工单
报问题、提需求、开讨论的地方
Release发布版
把某个存档点打包成"正式版本",标上号发出去
Open Source开源
把柜子公开,谁都能看、能用、能提改动
8

一件
必须小心的事

公开的柜子,
全世界都能翻
而且因为它记的是历史,你哪怕后来把密码删了,那一条旧存档里还留着——不是删了就没了。所以密码、钥匙、客户名单这类东西,一开始就别放进去。这是新手最常摔的一跤。
GitHub 的本质不是存文件,
是把「改动」变成了
可以被讨论的东西。
你不写代码也能用它:写文章、做方案、管一份长期在改的资料,一样有效。它真正解决的问题是——一群人同时改一样东西,怎么才能既不乱、又都留下痕迹、还能随时倒回去。
下 一 篇

分支和工作树差在哪

分支是「有哪几条线」,工作树是「你把线摊在哪张桌上」——一张桌子和两张桌子的区别,全靠图讲

第 10 期 · 4 分钟接着看 →
← 回到 ELI5 合集