Git 入门教程:从原理到实践的最小知识体系

软件开发中,版本控制是最重要的基础工具之一。它能帮你记录代码修改历史、团队协作,以及在出现错误时快速回退。 对初学者来说,Git 有时显得命令多、名词多,但本质并不复杂。本教程的目标是:用最小的概念,建立一套可立即上手的 Git 心智模型

一、Git 是什么?一句话足够

Git 是一个用于记录项目每次变化的工具,让你可以随时查看历史、切换版本、协同工作。

它不像网盘那样保存一堆文件,而是保存“每次修改的快照”,这就是它高效的原因。

如果你理解不了所有命令,不要紧:只要理解 Git 在管理一条时间线,你就是在使用它的核心能力

二、安装与初始配置:上手的第一步

安装完成后,你必须告诉 Git 你是谁:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

这些信息会写入每一次提交记录中,是协作的基础。


三、你的第一个仓库:让 Git 开始“观察”你的项目

进入你的项目目录:

git init

这个命令会创建一个隐藏目录 .git,里面保存了所有版本信息。从此以后,Git 就开始“跟踪”这个项目。

四、Git 的核心思想:三大区域模型

理解这张图,你就理解了 Git 的 80%:

工作区(Working Directory)
        ↓ git add
暂存区(Stage / Index)
        ↓ git commit
本地仓库(Repository)

解释:

  • 工作区:你正在编辑的文件。
  • 暂存区:告诉 Git“这些是我准备提交的文件”。
  • 仓库区:文件永久记录到版本历史。

一个提交(commit)就是从暂存区保存到仓库区的快照。

五、最常用的 Git 命令(够用版)

1. 查看当前状态

git status

新手要常用,它会告诉你哪些文件改变了、哪些被跟踪、哪些准备提交。

2. 把文件加入到暂存区

git add 文件名
git add .   # 全部文件

可以把它理解为:“把这些修改放进购物车”。

3. 创建一次提交

git commit -m "描述此次修改的内容"

提交就是保存历史快照,是 Git 的核心价值。 建议写清楚本次做了什么,而不是“修改了一些东西”。

4. 查看提交历史

git log

如果你看到很多提交,这是正常的:版本控制就是不断记录这些变化。

六、如何撤销?不要怕 Git,Git 最擅长救你

1. 撤回工作区修改

git checkout -- 文件名

让文件回到最近一次提交的状态。

2. 撤回暂存区变化

git reset 文件名

把文件从暂存区拿回工作区。

3. 撤销提交(但保留修改)

git reset --soft HEAD~1

这相当于“删掉最新的提交,但把代码留着”。

七、分支:Git 最有价值的能力

在 Git 中,分支很轻量,创建和切换分支几乎没有成本。

创建分支:

git branch dev

切换分支:

git checkout dev

“主分支负责发布,开发分支负责开发”——这是最常见的工作方式。

分支为什么重要?

因为你可以:

  • 在新分支上尝试新功能
  • 不破坏主分支
  • 随时删掉失败的尝试

这让 Git 成为一个鼓励实验的工具。

八、合并:把你的成果合回主线

完成开发后,你需要把分支的工作合并到主分支:

git checkout main
git merge dev

如果没有冲突,它会自动完成。

九、解决冲突:协作开发不可避免的一刻

两个开发者修改同一行代码,就会产生冲突。 Git 会在文件里标记冲突内容:

<<<<<<< HEAD
你的修改
=======
同事的修改
>>>>>>> dev

你只需手动编辑成想要的结果,再提交即可。

冲突不是错误,而是协作的自然产物。

十、远程仓库:开始真正的协作

把本地仓库和 GitHub(或 GitLab)绑定:

git remote add origin 仓库地址

推送:

git push -u origin main

拉取别人提交:

git pull

这是团队协作最核心的两步:“推给别人”和“拉取别人”。

十一、初学者最常见的三个疑问

1. 为什么我 push 不上去?

答案通常是:远程库有新的提交,你本地没有。 解决办法:

git pull --rebase
git push

2. 我改乱了能回去吗?

几乎都能。Git 就是为了防止“改乱了”而存在的。

3. 我需要记住所有命令吗?

不需要。 最核心的就这些:

git add
git commit
git status
git log
git checkout
git branch
git merge
git push
git pull

熟练它们,你已经是合格的 Git 用户。

十二、总结:用最小的知识体系开始真正使用 Git

你可以把 Git 想成一个“会计本”,它记录了代码的变化账单:

  • init:开账本
  • add:把修改列入账单
  • commit:保存账单
  • branch:给同一项目开多个账本副本
  • merge:把账单合在一起
  • push/pull:账本在多人之间同步

理解这套模型后,命令不过是操作方式的不同表达。