Git 和 GitHub:给文件留下可以回去的历史
这本手册的每一次修改都记在 Git 里。谁在哪天改了哪一行,为什么改,能不能回到改之前,全都有。这一页讲它是什么,然后你亲手改一次。
Git keeps every version and the reason for each change. That is why you can edit without fear.Git guarda cada versión y el motivo de cada cambio. Por eso puedes editar sin miedo.
Git 是什么
Section titled “Git 是什么”必须掌握
你什么时候会遇到这个问题:改了一个文件,改坏了,想回到上周的版本,找不到。
最简单可靠的做法:Git 给一个文件夹记历史。每次你说「记一下」,它给整个文件夹拍一张快照,附上你写的一句说明。以后可以看任何两张快照之间改了什么,可以回到任何一张。
它像 Word 的修订记录,区别是:对文件夹里所有文件一起记,记的是每一次而不是最近一次,而且默认不会「接受所有修订」把历史抹平。
GitHub 是什么
Section titled “GitHub 是什么”知道即可
存放 Git 仓库的网站,顺便提供协作:别人能看、能提修改建议、能讨论。这本手册的仓库就在 GitHub 上,设成了私有,只有作者能看。GitHub 不是唯一的,但最常用。
必须掌握
| 词 | 意思 | 像法律工作里的 |
|---|---|---|
| 仓库 | 被 Git 记着历史的那个文件夹 | 一个案子的卷宗 |
| 提交 | 一次快照加一句说明 | 一次归档,附归档说明 |
| 分支 | 复制一份出来在旁边改,不动正式的 | 拿副本试改,正本不动 |
| 合并请求 | 「我改好了,请审阅,同意就并进正式的」 | 提交审阅 |
| 回退 | 回到之前的某一次提交 | 撤回,但撤回本身也留痕 |
正式的那条线叫 main。规矩是:改之前开分支,预览确认之后再合并进 main。读者提交修改时走的就是这条规矩,见发布流程。
你怎么改这本手册的一个错别字
Section titled “你怎么改这本手册的一个错别字”必须掌握
你什么时候会遇到这个问题:读到一个错字,想顺手改掉。
这个仓库是私有的,作者把你加为协作者以后,才能这样改。
最简单可靠的做法,全程在浏览器里:
- 翻到那一页底部,点「编辑此页」。它会打开 GitHub 上对应的
.md文件。没登录会让你登录。 - 点右上角的铅笔图标,进入编辑。
- 找到那个字,改掉。页面上方能切到「Preview」看效果。
- 点右上角绿色的「Commit changes」。在弹窗里写一句说明,比如「修 Word 章错别字」。选「Create a new branch for this commit and start a pull request」,点「Propose changes」。
- 页面变成一个合并请求。等一两分钟,Cloudflare 会在下面留言,给一个预览地址。点开,用手机也看一遍。
- 没问题,点「Merge pull request」,再点确认。几分钟后正式网站就更新了。
这六步走过一遍,你就用过了仓库、提交、分支、合并请求四个词。第五个词回退,是当你合并后发现不对,回到上一次提交,这件事让作者做。
提交说明怎么写
Section titled “提交说明怎么写”知道即可
- 一次提交只做一件事。改错别字和加一节,是两次提交。
- 说明写给三个月后的自己:「修 Word 章错别字」「文件章加微信一节」。不写「更新」「修改」「fix」。
- 和文件名的规矩一样:让未来的你一眼看懂。
Git 不是网盘
Section titled “Git 不是网盘”必须掌握
- 不放大文件。照片、视频、扫描件放 iCloud 或网盘,Git 记历史会把每个版本都存下来,越来越大。
- 不放私人资料。仓库是私有的也一样,按「可能被别人看到」的标准处理。
- 不放密码和密钥。 这一条最重要,因为下面这件事。
进过 Git 的密码删不掉
Section titled “进过 Git 的密码删不掉”必须掌握
你什么时候会遇到这个问题:把一个 API key 写进了文件,提交了,后来发现不对,删掉再提交一次。你以为没事了。
为什么没事不了:Git 记的是历史。你删掉它的那次提交是一张新快照,含有它的那张旧快照还在,任何人翻历史都能看到。彻底清掉需要改写整个历史,麻烦而且不一定干净。
最简单可靠的做法:当它已经泄露了。去服务商那里撤销那把 key,重新生成一把,新的存进密码管理器,不再进仓库。规则在 API 一章。
提交过的东西撤回也留痕,这一点和证据一样。
回退:所以敢改
Section titled “回退:所以敢改”知道即可
每一次提交都能回去,所以在 Git 里改东西没有「改坏了怎么办」。这是它和普通文件夹最大的区别,也是这本手册能一直改下去的底气。
按上面六步,在这本手册里找一个你想改的字,走一遍到「Merge」。整个过程不会弄坏任何东西:预览不对就不合并,合并错了作者能回退。