Git:版本控制入门 · Lesson 1 of 5

第 1 课:版本控制与文件存档点

本课目标:

  • 解释编辑文件时,版本控制为什么有帮助。
  • 说出三个核心概念的名字:版本控制、仓库、提交。
  • 在自己的工作里指出一个 Git 能帮上忙的地方。

先修条件:无 | 上一篇 << README | 下一篇 02 >>

final_final_v2.docx 问题

你有没有把文件命名为 report_final.docx,然后是 report_final_v2.docx,再然后是 report_final_v2_REALLY.docx?这就是一套手工搭出来的版本控制系统。它平时够用,直到某天出事:你覆盖了不该覆盖的文件,想不起来哪个 “final” 里有你喜欢的那段话,或者一不小心删掉了一下午的工作。

版本控制是一种系统,它随时间记录一个或一组文件的变化,让你之后可以调出特定版本 1。Git 是一个流行的版本控制工具。可以把它理解为覆盖整个文件夹的存档点系统:每次你让它保存,它就记住那一刻每个文件的确切状态。

Git 仓库(常简称 repo)是一个被 Git 记录存档点的文件夹。仓库把历史悄悄存在内部,你可以照常继续工作 2

你需要的三个概念

本课只有三个新词。

  1. 版本控制:随时间记住文件的不同版本。
  2. 仓库:一个被 Git 盯着的文件夹。
  3. 提交:一次保存下来的快照,就像电子游戏里的存档点。

提交时,Git 会记录是谁做的改动、什么时候发生的,以及你写下的一句简短说明。之后你可以跳回任何一次提交。

这张图讲的是一件事:你的文件夹变成一个仓库,仓库里保存着一串提交。

完整示例(跟着做)

想象一位叫 Priya 的写作者。

  1. Priya 打开笔记本电脑,创建了一个名为 novel 的文件夹。
  2. 她在这个文件夹里输入 git init。现在它是一个仓库了。(你现在还不需要记住这些命令,第 2 课会把每一条都过一遍。)
  3. 她写了一章,运行两条命令:git add chapter1.mdgit commit -m "First draft of chapter 1"
  4. 第二天她修改了这一章。她运行 git add chapter1.mdgit commit -m "Add opening scene"
  5. 她现在有两个存档点。如果她不喜欢新的开头,可以回到第一次提交。

这就是 Git 给你的日常能力:不再丢失已经完成的工作。

你来试试(填空示例)

用本课的词填空:版本控制、仓库、提交。

被 Git 盯着的文件夹叫 _______。保存一次快照的动作产生一个 _______。随时间记住各个版本的整套系统叫 _______。

答案: 仓库、提交、版本控制。

小结 + 下节课预告

本课介绍了 Git 要解决的痛点:丢失已经完成的工作。你学到了三个概念:版本控制、仓库和提交,并检查了 Git 是否已安装。下节课,你将把一个真实文件夹变成仓库,并完成第一次提交。

Footnotes

  1. Pro Git, About Version Control — https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control.html

  2. Pro Git, Getting a Git Repository — https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository

Exercises

01

看看你自己的电脑。找出最近一个月里你编辑过不止一次的三个文件或文件夹(文档、设计稿、笔记、代码,什么都行)。为每一个写一句话,说明如果有早期版本的历史会有什么帮助。

第 1 级(热身)
Done criteria · checked locally
02

打开终端,检查 Git 是否已安装。输入 git --version。

第 2 级(进阶)
Done criteria · checked locally