Git 与版本控制

从零开始学习 Git:保存工作的历史,放心地撤销错误,并在 GitHub 上与他人协作。本系列的每条命令都在你自己的电脑上输入,页面上的每段输出都由真实的 Git 产生。

10 个模块27 小时EN / 中文

学习方式

每个模块需要两到三小时。读完一节后,在你自己的终端中输入该节动手环节中的命令,并把看到的结果与页面上的输出进行比较。第 1 模块会介绍如何安装和设置 Git。

页面上的输出由各处说明中注明的 Git 版本产生,使用的是示例的姓名、日期和文件夹。你的姓名、日期、提交哈希和文件夹会有所不同,其他版本的 Git 提示措辞也可能略有差异,但这些提示的含义不变。

每个模块最后都有附参考解答的练习和简短自测。学习进度保存在当前浏览器中,中英文版本共享。

模块列表

模块 01
为什么需要版本控制?
版本控制解决的问题、Git 与旧式工具的区别、安装 Git,以及告诉 Git 你是谁。
已开放 · 2 小时
模块 02
你的第一个仓库
创建仓库,认识工作区、暂存区与仓库,做出聚焦的提交,并忽略不该跟踪的文件。
已开放 · 3 小时
模块 03
查看历史与撤销
阅读历史、比较版本、安全地查看旧版本,并在各个阶段撤销错误。
已开放 · 3 小时
模块 04
分支
把分支理解为可移动的标签,认识 HEAD,在不同工作线之间切换,以及快进合并与三方合并。
已开放 · 3 小时
模块 05
合并冲突
冲突为何发生、如何读懂冲突标记,以及如何解决、完成或放弃一次合并。
已开放 · 2 小时
模块 06
远程仓库
与远程仓库进行克隆、获取、拉取和推送,先在自己的电脑上练习,再到 GitHub 上实践。
已开放 · 3 小时
模块 07
用拉取请求协作
功能分支、复刻、拉取请求、代码评审,以及让你的工作与团队保持同步。
已开放 · 3 小时
模块 08
改写历史与恢复
用变基、压缩和修补整理历史,遵守关于共享历史的那条规则,并用 reflog 找回工作。
已开放 · 3 小时
模块 09
Git 的内部原理
数据对象、树对象、提交、哈希与引用:理解 Git 一切行为的少数几个概念。
已开放 · 2 小时
模块 10
综合项目:团队协作
两个人、两份克隆和一个共享仓库,从第一次提交到带标签的发布,完成一个小项目。
已开放 · 3 小时

致谢

本系列为本站编写。如需深入学习,推荐(但并未摘抄)Scott Chacon 与 Ben Straub 的免费图书 Pro Git、官方 Git 参考文档、GitHub 文档,以及用于练习分支的 Learn Git Branching。