Git 小白快速入门指南
一、什么是 Git
Git 是一款分布式版本控制系统(Distributed Version Control System),由 Linux 之父 Linus Torvalds 在2005年开发。
通俗理解:你可以把 Git 当成一台时光机器 + 文件备份管家。 它可以记录你项目里每一次文件改动,记住每一个版本;你随时可以回看历史、恢复旧文件;而且它是分布式的,每一台电脑都拥有一份完整的项目仓库,不依赖中央服务器。
Git 和 Github / Gitee 的区别(小白最容易混淆)
- Git:是本地工具,装在你电脑上,用来管理版本。
- GitHub / Gitee / GitLab:是远程代码托管网站(云端仓库),用来把你本地 Git 的项目上传到网上,实现备份、多人协作。
关系:
Git是工具,GitHub是存放代码的网盘网站,二者不是同一个东西。
二、Git 的主要作用
- 版本回溯:文件改坏了、代码写错了,可以随时回到之前任意一个历史版本,不用手动保存
项目_v1.py、项目_v2.py这种无数备份文件。 - 多人协作开发:多人同时修改同一个项目,Git 可以合并大家的修改,解决文件冲突,避免互相覆盖对方写的内容。
- 分支开发:你可以新开一条「支线」写新功能,不影响原本稳定的代码,写完之后再合并回主线。
- 云端备份:将本地项目推送到 GitHub/Gitee,电脑坏了代码不会丢失。
- 项目追踪:查看每一行代码是谁改的、什么时候改的、改了什么内容。
三、Git 核心概念(小白必懂)
| 名词 | 通俗解释 |
|---|---|
| 仓库(Repository) | 被 Git 管理的项目文件夹,里面隐藏 .git 文件夹存放所有版本历史 |
| 工作区(Working Directory) | 你肉眼看得见、正在编辑的项目文件 |
| 暂存区(Stage / Index) | 临时中转站,把你准备提交的改动先放到这里 |
| 本地仓库(Local Repository) | 存在你电脑上,已经永久保存的历史版本 |
| 远程仓库(Remote Repository) | 存放在 GitHub/Gitee 网站上的项目 |
| 提交(commit) | 保存一个新版本,生成一条历史记录 |
| 分支(branch) | 项目的一条开发线,默认主线叫 main(新版)/master(旧版) |
文件流转路径:
工作区修改文件→ 添加到暂存区 → 提交到本地仓库 → 推送(push)到远程仓库
四、第一步:安装 Git
- 下载地址:官网 https://git-scm.com/downloads
- Windows 安装:一路默认下一步即可,安装后右键桌面可以看到 Git Bash
- 打开 Git Bash,输入命令检查是否安装成功:
输出版本号就代表安装成功。
五、初次配置(电脑只需要配置一次)(这是控制台终端程序,我们一般不用)
设置你的用户名和邮箱(远程提交代码会标记是谁提交的)
查看配置是否生效
vscode 集成 Git插件(Git Graph)(用这个,可视化方便查看Git Graph插件教程) 频繁使用,应该仔细看
- 安装插件,安装插件之后,可以登录你的 GitHub 账号或者是 Gitee 账号来关联你的仓库或实现远程管理项目
- 登录账号之后,点击
Git Graph图标,就可以看到你的项目仓库,点击Clone按钮,就可以把项目 clone 到本地
git可视化软件fork(这个可视化的功能更强大,和插件有一点重复,但是使用更方便)查看 fork 插件教程 需要回退版本的时候,应该仔细看
⭐ 核心概念:暂存、提交、推送、拉取、Fetch 的区别
这是 Git 初学者最容易混淆的一组概念。一句话记忆法:
- 暂存(Stage/add):把改动"登记"进本地暂存区
- 提交(Commit):把暂存区的改动"存档"成一个本地版本记录
- 推送(Push):把本地提交"上传"到云端
- 拉取(Pull):把云端更新"下载并合并"到本地
- Fetch:只把云端更新"下载"下来,不合并
一图看清它们的流向
- 横向看:
暂存 → 提交是本地内部的操作,不联网; - 纵向看:
推送 / 拉取 / Fetch是本地与云端之间的网络传输操作。
逐一详细展开
1️⃣ 暂存(Stage / git add)—— 本地"登记"
- 一句话:把文件的改动放进暂存区,告诉 Git"这些改动我打算一起提交"。
- 详细:你改了代码后,Git 能"看到"改动,但默认不认为你要提交它。点击加号(Stage)后,改动被"打上标记"加入暂存区,等待下一步提交。
- 特点:暂存本身不会生成任何版本记录,随时可以撤销(Unstage),不影响历史。
2️⃣ 提交(Commit)—— 本地"存档"
- 一句话:把暂存区的改动打包成一个新的本地版本记录(含提交信息)。
- 详细:提交后会在本地形成一个新的 Commit(哈希值),这就是一个可随时回退的版本点。你可以回到这个提交之前的状态,也可以保留这个状态。
- 特点:提交只发生在本地,此时云端还看不到你的任何改动。
💡 暂存 vs 提交的关键区别:暂存是"先挑好要提交的东西",提交是"正式存成一个版本"。只有提交了,才会产生一个可以被回退、被记录的历史节点。
3️⃣ 推送(Push / git push)—— 上传到云端
- 一句话:把本地已有的提交上传到远程仓库。
- 详细:本地提交后,云端仓库并不知道。点击 Push(Fork 左下角的循环图标),就会把本地多出来的那部分提交"上传"到远程,让云端和本地保持一致。
- 特点:推送只把本地有而云端没有的提交发上去,是"单向从本地到云端"。
4️⃣ 拉取(Pull / git pull)—— 下载并合并
- 一句话:把云端最新的提交下载下来,并自动合并到当前本地分支。
- 详细:当云端(比如 GitHub 上别人推了代码)比本地更新时,点击 Pull 会:① 下载远程的新提交;② 直接合并进你当前所在的分支。
- 特点:Pull = Fetch + Merge 两步合一。如果本地和远程都改了同一处,合并时可能产生冲突,需要手动解决。
5️⃣ Fetch(git fetch)—— 只下载,不合并
- 一句话:把云端最新的提交下载下来,但不合并到当前分支。
- 详细:Fetch 只是把远程仓库的最新状态"拉下来看一眼",更新本地对远程分支的记录(比如 origin/main),但不会改动你正在工作的分支。
- 特点:最安全、无副作用。适合"先看看远程有什么变化,再决定要不要合并"。
🔍 最容易混淆的一对:Pull vs Fetch
| 对比项 | Pull(拉取) | Fetch |
|---|---|---|
| 操作 | 下载 + 自动合并 | 只下载,不合并 |
| 是否改动当前分支 | ✅ 会 | ❌ 不会 |
| 风险 | 可能产生合并冲突 | 完全无副作用,最安全 |
| 本质 | git fetch + git merge |
单纯下载 |
| 使用场景 | 确定要更新当前代码时 | 只想查看远程变化、不急于合并时 |
💡 记忆技巧:Pull 是"拿来就用"(下载+合并一步到位),Fetch 是"先看看再说"(只下载不合并)。如果你不确定远程的改动会不会影响当前代码,先 Fetch 看一眼再决定,比直接 Pull 更稳妥。
📝 五者关系一句话总结
| 操作 | 方向 | 是否联网 | 是否产生版本 | 一句话记忆 |
|---|---|---|---|---|
| 暂存 | 工作区→暂存区 | ❌ | ❌ | 先"挑好"要提交的改动 |
| 提交 | 暂存区→本地库 | ❌ | ✅ | 正式"存档"成一个版本 |
| 推送 | 本地→云端 | ✅ | ❌ | 把本地提交"上传"到云端 |
| 拉取 | 云端→本地 | ✅ | ❌ | 下载并合并云端更新 |
| Fetch | 云端→本地 | ✅ | ❌ | 只下载不合并,先看看再说 |
下面的内容不看也行
六、最常用 6 条基础命令(入门必背)(这是控制台终端程序,我们一般不用)
1. 创建本地 Git 仓库
方式1:把现有文件夹变成 Git 仓库
方式2:从云端克隆一个项目到本地
2. 查看当前文件改动状态
3. 将改动添加到暂存区
4. 提交改动到本地仓库(保存版本)
5. 关联远程仓库(上传到 GitHub/Gitee)
6. 推送本地代码到远程仓库
七、最简单完整实操流程示例(这是控制台终端程序,我们一般不用)
八、新手高频问题 & 避坑提示
- 不要把
.git文件夹删除! 删除后所有版本历史全部丢失 - 每次
commit的说明文字尽量写清楚改了什么,方便以后回溯 - Windows 尽量使用 Git Bash 执行命令,不要用 cmd
- 不要把配置文件、密码、虚拟环境文件夹上传到代码仓库,可以创建
.gitignore文件忽略不需要上传的文件 - 所有的文件夹名、项目名、文件名、路径等尽量使用小写,如使用大写之后,不可改为小写,否则会出现字符乱码或路径错误
九、下一步学习路线(快速进阶)
- 学会分支操作:
git branch、git checkout、git merge - 学会拉取远程更新:
git pull - 练习解决简单冲突
- 熟练使用 Gitee / GitHub 进行项目托管