Skip to content

什么是 Git?

版本控制简介,以及 Git 为何是追踪变更的行业标准。

你将学到

  • 什么是版本控制,每个开发者为何都需要它
  • Git 如何随时间追踪文件变更
  • Git(工具)与 GitHub(平台)的区别
  • 分布式 vs 集中式版本控制系统

概念讲解

什么是版本控制?

版本控制是一个随时间记录文件变更的系统,让你之后可以回溯到特定版本。没有它,你的文件夹里会堆满 report_final.docxreport_final_v2.docxreport_final_REALLY_FINAL.docx 这样的文件——管理起来是噩梦。

版本控制让你可以:

  • 追踪历史——看到谁在何时改了什么、为什么改
  • 回退——回到任何先前状态以撤销错误
  • 分支——在不影响主代码的情况下开发功能或实验
  • 协作——合并多人工作而不互相覆盖

什么是 Git?

Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建(他也是 Linux 的创造者)。它是软件开发的事实标准——超过 90% 的开发者都在使用。

Git 存储的是项目的快照,而不仅仅是文件之间的差异。每次提交都是项目在该时刻的完整快照,这让分支和回退都快速且可靠。

分布式 vs 集中式

SVN 等老系统是集中式的——有一个中央服务器,每个开发者从中检出文件。服务器宕机就没人能工作。

Git 是分布式的——每个开发者都在本地拥有整个仓库历史的完整副本。你可以离线提交、分支和查看历史。只有在推送或拉取远程时才需要网络。

Git 与 GitHub

这是常见的混淆点:

  • Git 是运行在你电脑上的命令行工具,负责实际的版本控制工作。
  • GitHub 是托管 Git 仓库的 Web 平台,并添加了协作功能(拉取请求、Issue、代码审查)。其他替代品包括 GitLab、Bitbucket 和 Gitea。

你完全可以不用 GitHub 而只用 Git——例如本地追踪个人项目。GitHub 只是存储和分享 Git 仓库的地方之一。

为什么要学 Git?

在专业软件开发中,Git 是不可协商的。每个招聘帖、每个开源项目、每个团队工作流都假设你懂 Git。尽早掌握基础能让你免于丢失工作成果和日后痛苦的冲突。

示例代码

              # 检查 Git 是否已安装并查看版本
git --version

# 配置你的身份(每台机器做一次)
# 这些会附加到你每次提交上
git config --global user.name "Ada Lovelace"
git config --global user.email "[email protected]"

# 查看所有 Git 配置
git config --list

# 获取任何 Git 命令的帮助
git help init
git add --help
            

这些是安装 Git 后首先运行的命令。config 命令设置你的姓名和邮箱,它们会被嵌入每次提交,让人知道谁做了每项变更。

动手试一试

常见错误

错误写法

把 Git 和 GitHub 混为一谈

正确做法

Git 是本地运行的版本控制工具;GitHub 是托管 Git 仓库的 Web 平台。你可以不用 GitHub 而用 Git,但不能不用 Git 而用 GitHub。

错误写法

在第一次提交前没有配置 user.name 和 user.email

正确做法

在第一次提交前运行 git config --global user.name 'Your Name' 和 git config --global user.email '[email protected]',否则 Git 会拒绝提交或使用默认身份。

相关代码片段

相关速查表

查阅不认识的术语

新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。

查看术语表

动手做项目

通过引导式项目应用所学,含起始代码与解决方案。

查看项目

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误