Git 入门指南
欢迎来到 Git 手册!我是 Juno,这是我最喜欢教的内容之一,因为 Git 在你搞懂它之前看起来很吓人,但一旦开窍,它就会变成你每天都在悄悄依赖的东西。
我们会从“为什么需要版本控制”这个根本问题讲起,然后一个一个学会你真正会用到的那几个命令。不需要任何 Git 基础,这里也没有什么问题会显得“太简单不好意思问”。
按自己的节奏来,我们一起慢慢搞懂它!
这份手册是写给想真正理解 Git 工作原理的开发者的,目的是让你不再靠瞎猜来用 Git。Git 是记录你项目历史的工具:它会随着你的工作不断保存快照,让你可以放心尝试一些有风险的改动、并干净地退回去,还能让整个团队在同一份代码上协作而不互相覆盖对方的成果。几乎所有专业代码库都托管在 Git 上,所以尽早熟悉它,是你能学到的最有用的技能之一。
在讲其他内容之前,有一点必须先说清楚,因为几乎每个人都会在这里犯迷糊:Git 和 GitHub 不是一回事。Git 是运行在你自己电脑上的版本控制工具。GitHub 是一个托管 Git 仓库、并在此基础上加入协作功能的网站。你完全可以在没有 GitHub 账号的情况下使用 Git。下一章什么是 Git会把这两者彻底讲清楚,还会讲讲 Git 的由来——这段历史很精彩:它是 2005 年,由 Linux 的创造者,在很赶的情况下写出来的。
什么是仓库(repository)?
仓库是 Git 跟踪的一个项目文件夹,里面保存着这个项目每一次 commit 的完整历史。你的第一个仓库会讲怎么创建一个仓库。
这份文档的思路是讲清楚命令背后的工具原理。任何人都能把 git add、git commit、git push 死记下来,运气好的话也能应付过去。但从“会用”到“真正熟练”之间的距离,就在于你是否理解这些命令对你的仓库做了什么——这样当有些东西看起来出问题时,你能靠推理搞懂它,而不是靠瞎猜。所以这份手册会花不少篇幅讲心智模型——staging(暂存)、把 branch 理解成指针、merge 到底做了什么——这些内容会穿插在命令讲解的前后,因为正是这个模型,才能把 Git 从“吓人”变成“清楚”。
你不需要任何 Git 基础就可以开始,也不需要提前装好任何东西:你的第一个仓库会从打开终端、把 Git 装到你电脑上讲起,所有 Git 相关的专业内容都会在用到的时候才引入。如果某个术语让你看不懂了,术语表里收录了这份文档中出现的每一个 Git 词汇的简短解释。这份文档负责深入讲解概念;Scrimba 的课程则是同样内容的“跟着一起动手做”版本。
认识你的向导
这份文档由三位向导主持,你可以自己选择由哪一位带你逛。教学内容对每个人都是一样的,向导决定的是每个部分讲得多深、以及讲述的语气。
你可以随时在页面顶部的选择器切换向导,也可以打开右下角的偏好设置来更改向导、语言或字体大小。
更喜欢边做边学?Scrimba 的 Learn Git and GitHub 课程用 39 节短小的互动课程,带你亲手实践同样的内容。
