跳转至

Git 小白快速入门指南

一、什么是 Git

Git 是一款分布式版本控制系统(Distributed Version Control System),由 Linux 之父 Linus Torvalds 在2005年开发。

通俗理解:你可以把 Git 当成一台时光机器 + 文件备份管家。 它可以记录你项目里每一次文件改动,记住每一个版本;你随时可以回看历史、恢复旧文件;而且它是分布式的,每一台电脑都拥有一份完整的项目仓库,不依赖中央服务器。

Git 和 Github / Gitee 的区别(小白最容易混淆)

  • Git:是本地工具,装在你电脑上,用来管理版本。
  • GitHub / Gitee / GitLab:是远程代码托管网站(云端仓库),用来把你本地 Git 的项目上传到网上,实现备份、多人协作。

    关系:Git 是工具,GitHub 是存放代码的网盘网站,二者不是同一个东西。

二、Git 的主要作用

  1. 版本回溯:文件改坏了、代码写错了,可以随时回到之前任意一个历史版本,不用手动保存 项目_v1.py项目_v2.py 这种无数备份文件。
  2. 多人协作开发:多人同时修改同一个项目,Git 可以合并大家的修改,解决文件冲突,避免互相覆盖对方写的内容。
  3. 分支开发:你可以新开一条「支线」写新功能,不影响原本稳定的代码,写完之后再合并回主线。
  4. 云端备份:将本地项目推送到 GitHub/Gitee,电脑坏了代码不会丢失。
  5. 项目追踪:查看每一行代码是谁改的、什么时候改的、改了什么内容。

三、Git 核心概念(小白必懂)

名词 通俗解释
仓库(Repository) 被 Git 管理的项目文件夹,里面隐藏 .git 文件夹存放所有版本历史
工作区(Working Directory) 你肉眼看得见、正在编辑的项目文件
暂存区(Stage / Index) 临时中转站,把你准备提交的改动先放到这里
本地仓库(Local Repository) 存在你电脑上,已经永久保存的历史版本
远程仓库(Remote Repository) 存放在 GitHub/Gitee 网站上的项目
提交(commit) 保存一个新版本,生成一条历史记录
分支(branch) 项目的一条开发线,默认主线叫 main(新版)/master(旧版)

文件流转路径: 工作区修改文件 → 添加到暂存区 → 提交到本地仓库 → 推送(push)到远程仓库

四、第一步:安装 Git

  1. 下载地址:官网 https://git-scm.com/downloads
  2. Windows 安装:一路默认下一步即可,安装后右键桌面可以看到 Git Bash
  3. 打开 Git Bash,输入命令检查是否安装成功:
git --version

输出版本号就代表安装成功。

五、初次配置(电脑只需要配置一次)(这是控制台终端程序,我们一般不用)

设置你的用户名和邮箱(远程提交代码会标记是谁提交的)

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

查看配置是否生效

git config --list

vscode 集成 Git插件(Git Graph)(用这个,可视化方便查看Git Graph插件教程) 频繁使用,应该仔细看

  • 安装插件,安装插件之后,可以登录你的 GitHub 账号或者是 Gitee 账号来关联你的仓库或实现远程管理项目
  • 登录账号之后,点击 Git Graph 图标,就可以看到你的项目仓库,点击 Clone 按钮,就可以把项目 clone 到本地

git可视化软件fork(这个可视化的功能更强大,和插件有一点重复,但是使用更方便)查看 fork 插件教程 需要回退版本的时候,应该仔细看

⭐ 核心概念:暂存、提交、推送、拉取、Fetch 的区别

这是 Git 初学者最容易混淆的一组概念。一句话记忆法:

  • 暂存(Stage/add):把改动"登记"进本地暂存区
  • 提交(Commit):把暂存区的改动"存档"成一个本地版本记录
  • 推送(Push):把本地提交"上传"到云端
  • 拉取(Pull):把云端更新"下载并合并"到本地
  • Fetch:只把云端更新"下载"下来,不合并

一图看清它们的流向

1
2
3
4
 你改代码 → 暂存(Stage) → 提交(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 仓库

1
2
3
4
# 进入你的项目文件夹
cd D:/code/my-project
# 初始化git仓库
git init

方式2:从云端克隆一个项目到本地

git clone 仓库地址

2. 查看当前文件改动状态

git status

3. 将改动添加到暂存区

1
2
3
4
# 添加单个文件
git add test.py
# 添加所有改动文件(小白最常用)
git add .

4. 提交改动到本地仓库(保存版本)

git commit -m "这里填写本次修改说明,例如:完成登录功能"

5. 关联远程仓库(上传到 GitHub/Gitee)

git remote add origin 你的远程仓库https地址

6. 推送本地代码到远程仓库

git push -u origin main

七、最简单完整实操流程示例(这是控制台终端程序,我们一般不用)

#1.新建项目文件夹并进入
mkdir demo
cd demo
#2.初始化仓库
git init
#3.新建一个文件
echo "hello git" > readme.md
#4.加入暂存区
git add .
#5.提交版本
git commit -m "第一次提交,创建readme文件"
#6.关联远程仓库
git remote add origin shturl.cc/4UNDpHtX4Z2UDT1Nb3IN
#7.推送到云端
git push -u origin main

八、新手高频问题 & 避坑提示

  1. 不要把 .git 文件夹删除! 删除后所有版本历史全部丢失
  2. 每次 commit 的说明文字尽量写清楚改了什么,方便以后回溯
  3. Windows 尽量使用 Git Bash 执行命令,不要用 cmd
  4. 不要把配置文件、密码、虚拟环境文件夹上传到代码仓库,可以创建 .gitignore 文件忽略不需要上传的文件
  5. 所有的文件夹名、项目名、文件名、路径等尽量使用小写,如使用大写之后,不可改为小写,否则会出现字符乱码或路径错误

九、下一步学习路线(快速进阶)

  1. 学会分支操作git branchgit checkoutgit merge
  2. 学会拉取远程更新:git pull
  3. 练习解决简单冲突
  4. 熟练使用 Gitee / GitHub 进行项目托管