什么是 Git?
版本控制简介,以及 Git 为何是追踪变更的行业标准。
你将学到
- 什么是版本控制,每个开发者为何都需要它
- Git 如何随时间追踪文件变更
- Git(工具)与 GitHub(平台)的区别
- 分布式 vs 集中式版本控制系统
概念讲解
什么是版本控制?
版本控制是一个随时间记录文件变更的系统,让你之后可以回溯到特定版本。没有它,你的文件夹里会堆满 report_final.docx、report_final_v2.docx、report_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 命令设置你的姓名和邮箱,它们会被嵌入每次提交,让人知道谁做了每项变更。
动手试一试
- .gitignore Generator
为你的语言生成 .gitignore 文件——Git 的必备伴侣。
- File Hash Checksum
Git 内部使用 SHA-1 哈希——了解文件哈希如何工作。
常见错误
错误写法
把 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 会拒绝提交或使用默认身份。
相关资源
相关代码片段
- Git Remote Snippet
操作远程仓库。
相关速查表
- Git Cheatsheet
Git 命令完整参考。
查阅不认识的术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
动手做项目
通过引导式项目应用所学,含起始代码与解决方案。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。