跳转到内容

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.

分支上改,预览后合并 main 提交 提交 提交 合并 提交 分支:改错别字 预览地址在这里 每一个圆点都能回去;改坏了不合并就行 进过 Git 的密码删不掉
正式的那条线叫 main,改动在分支上先预览

必须掌握

你什么时候会遇到这个问题:改了一个文件,改坏了,想回到上周的版本,找不到。

最简单可靠的做法:Git 给一个文件夹记历史。每次你说「记一下」,它给整个文件夹拍一张快照,附上你写的一句说明。以后可以看任何两张快照之间改了什么,可以回到任何一张。

它像 Word 的修订记录,区别是:对文件夹里所有文件一起记,记的是每一次而不是最近一次,而且默认不会「接受所有修订」把历史抹平。

知道即可

存放 Git 仓库的网站,顺便提供协作:别人能看、能提修改建议、能讨论。这本手册的仓库就在 GitHub 上,设成了私有,只有作者能看。GitHub 不是唯一的,但最常用。

必须掌握

词 意思 像法律工作里的
仓库 被 Git 记着历史的那个文件夹 一个案子的卷宗
提交 一次快照加一句说明 一次归档,附归档说明
分支 复制一份出来在旁边改,不动正式的 拿副本试改,正本不动
合并请求 「我改好了,请审阅,同意就并进正式的」 提交审阅
回退 回到之前的某一次提交 撤回,但撤回本身也留痕

正式的那条线叫 main。规矩是:改之前开分支,预览确认之后再合并进 main。读者提交修改时走的就是这条规矩,见发布流程。

你怎么改这本手册的一个错别字

Section titled “你怎么改这本手册的一个错别字”

必须掌握

你什么时候会遇到这个问题:读到一个错字,想顺手改掉。

这个仓库是私有的,作者把你加为协作者以后,才能这样改。

最简单可靠的做法,全程在浏览器里:

  1. 翻到那一页底部,点「编辑此页」。它会打开 GitHub 上对应的 .md 文件。没登录会让你登录。
  2. 点右上角的铅笔图标,进入编辑。
  3. 找到那个字,改掉。页面上方能切到「Preview」看效果。
  4. 点右上角绿色的「Commit changes」。在弹窗里写一句说明,比如「修 Word 章错别字」。选「Create a new branch for this commit and start a pull request」,点「Propose changes」。
  5. 页面变成一个合并请求。等一两分钟,Cloudflare 会在下面留言,给一个预览地址。点开,用手机也看一遍。
  6. 没问题,点「Merge pull request」,再点确认。几分钟后正式网站就更新了。

这六步走过一遍,你就用过了仓库、提交、分支、合并请求四个词。第五个词回退,是当你合并后发现不对,回到上一次提交,这件事让作者做。

知道即可

  • 一次提交只做一件事。改错别字和加一节,是两次提交。
  • 说明写给三个月后的自己:「修 Word 章错别字」「文件章加微信一节」。不写「更新」「修改」「fix」。
  • 和文件名的规矩一样:让未来的你一眼看懂。

必须掌握

  • 不放大文件。照片、视频、扫描件放 iCloud 或网盘,Git 记历史会把每个版本都存下来,越来越大。
  • 不放私人资料。仓库是私有的也一样,按「可能被别人看到」的标准处理。
  • 不放密码和密钥。 这一条最重要,因为下面这件事。

必须掌握

你什么时候会遇到这个问题:把一个 API key 写进了文件,提交了,后来发现不对,删掉再提交一次。你以为没事了。

为什么没事不了:Git 记的是历史。你删掉它的那次提交是一张新快照,含有它的那张旧快照还在,任何人翻历史都能看到。彻底清掉需要改写整个历史,麻烦而且不一定干净。

最简单可靠的做法:当它已经泄露了。去服务商那里撤销那把 key,重新生成一把,新的存进密码管理器,不再进仓库。规则在 API 一章。

提交过的东西撤回也留痕,这一点和证据一样。

知道即可

每一次提交都能回去,所以在 Git 里改东西没有「改坏了怎么办」。这是它和普通文件夹最大的区别,也是这本手册能一直改下去的底气。

按上面六步,在这本手册里找一个你想改的字,走一遍到「Merge」。整个过程不会弄坏任何东西:预览不对就不合并,合并错了作者能回退。