一、为什么要学习 Git?(核心作用)
1. 传统本地文件的痛点
我们平时直接写代码、存文件夹,会遇到四大致命问题:
- 硬盘损坏、文件误删:代码直接丢失,无法找回
- 修改代码后忘记改了哪里:没有记录,无法对比新旧版本
- 版本混乱:项目 v1、v2、最终版、最终版真的最终,文件杂乱
- 多人协作极其混乱:多人改同一个文件,无法合并、容易覆盖代码
2. Git 的本质
Git 是一款 分布式版本控制系统。
它把普通的「文件文件夹」升级为「可追踪、可回溯、可备份、可多人协作」的项目仓库。
核心原理:对项目进行一次次「快照保存」,每一次提交都是一个完整版本。
3. Git 只管什么?
Git 只管理项目文件(代码、文档、配置),不管理软件、环境、系统。
二、Git 架构:分布式协作原理
1. 两大仓库体系
- 本地仓库:每个人电脑上的仓库,独立、完整、离线可用
- 远程中央仓库:云端仓库,用来统一汇总所有人代码
2. 常用远程仓库平台
- GitHub:国外,开源项目最多
- Gitee 码云:国内,访问速度快,国内开发首选
3. 多人协作模式
A、B、C 多名开发者,每个人本地都有完整仓库,写完代码统一推送到中央远程仓库,实现代码统一管理。
三、Git 工作区域与文件状态(重中之重)
1. Git 三大工作区
- 工作区:你电脑看得见的项目文件夹,写代码的地方
- 暂存区(stage) :临时缓存区,存放即将提交的文件
- 本地仓库:.git 目录,永久保存版本快照,可回溯
2. 文件四种状态流转
未跟踪(untracked)→ 暂存(staged)→ 已提交(committed)→ 新版本
- 未跟踪:新建文件,Git 还没接管
- 已修改:旧文件改动了,但没放入暂存
- 已暂存:执行 add 后,等待提交
- 已提交:保存到本地仓库,生成永久版本
四、Git 本地仓库完整初始化流程
1. 环境说明
使用 Git Bash 操作,是一个微型 Linux 命令行环境。
2. 全局用户配置(只需配置一次电脑)
作用:标记代码是谁提交的,必须配置,否则首次提交报错。
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
--global 代表全局:所有项目都生效
3. 初始化本地仓库 git init
git init
执行后,当前普通文件夹 → Git 本地仓库
生成隐藏目录 .git
- 仓库核心文件夹,保存所有版本、快照、记录
- 绝对不能手动修改、删除,否则仓库损坏
五、最核心三大命令(日常必用)
1. git status 查看仓库状态
git status
使用原则:任何操作前,先看 status
作用:查看当前哪些文件未跟踪、哪些已修改、哪些待提交。
2. git add 添加到暂存区
# 单个文件加入暂存
git add readme.md
# 所有文件全部加入暂存
git add .
场景:新建的文件是 untracked 未跟踪状态,必须 add 让 Git 接管。
执行后状态变为:to be committed 等待提交
3. git commit 生成版本快照
git commit -m "wrote a readme file"
作用:把暂存区的代码,永久保存到本地仓库,生成一个版本快照。
输出提示:2 insertions 代表新增了2行代码,说明提交成功。
完整本地流程总结
新建项目文件夹 → git init → 写代码 → git add → git commit(生成第一个版本)
六、远程仓库关联与推送
1. 核心概念
- remote:远程仓库
- origin:远程仓库默认别名(固定叫法)
- push:推送,把本地版本上传到云端
2. 关联远程仓库
git remote add origin 你的远程仓库地址
作用:让本地仓库绑定 GitHub/Gitee 远程仓库
3. 推送到远程仓库
# 推送到主分支
git push origin main
# 旧版本默认分支
git push origin master
七、代码冲突问题(课堂重点)
1. 冲突产生原因
多人协作时,多个人同时修改同一个文件的同一行代码,先后推送远程仓库,Git 无法自动合并,就会产生冲突。
2. 冲突解决方式
需要开发者 手动对比代码、保留正确代码、删除冲突标记,重新 add、commit、push。
八、Git 完整工作流程(终极总结)
- 电脑初次配置用户名、邮箱
- 文件夹初始化仓库:git init
- 编写项目代码
- 查看状态:git status
- 添加暂存:git add .
- 提交版本:git commit -m "版本说明"
- 关联远程仓库
- 推送云端:git push