📘 一、Git 基础概念
理解 Git 的核心理念和设计思想
1. Git 是什么?
Git 的基本定义和特点
(1) 简单理解
用通俗的方式理解 Git
a. 游戏存档类比
- Git 就像游戏的**"存档系统"**,可以随时保存代码状态
- 如果代码改坏了,可以回退到之前的任意存档点
- 支持多人协作,每个人都有自己的完整备份
(2) 核心定义
Git 的正式定义
a. 版本控制系统
- Git 是一个分布式版本控制系统
- 用于跟踪计算机文件的变更
- 协调多人之间的协作开发
2. 核心概念
Git 的关键设计理念
(1) 版本控制
记录文件变更历史的机制
a. 基本功能
I. 随时保存状态
- 随时保存当前状态
II. 问题回退
- 出了问题可以回退到之前的存档点
III. 历史记录
- 记录每次修改的历史
(2) 分布式架构
与集中式版本控制的本质区别
a. 分布式优势
- 每个人的电脑上都有完整的代码仓库(包含完整历史记录)
- 不依赖中央服务器也能进行提交、查看历史等操作
- 中央服务器宕机时,任何人都可以用本地的仓库恢复
3. Git的下载
(1) 点击下载
(2) 验证下载
win + R输入
bash
cmd
再输入
bash
# 在命令提示符中的任意路径输入如下命令
git -v
(3) 配置Git用户信息
bash
# 注意: --global 表示声明为全局设置,为可选项
$ git config --global user.name xxx
$ git config --global user.email xxxx.com
或者让DeepSeek帮你配 这是公司给我的邮箱信息
邮箱:xxxxxxxxxxxxxxxxxxx
用户名:xxxxxxxxxxxxxxxxxx
密码:xxxxxxxxxxxxxx
基于以上信息帮我完成Git的初始化
(4) 配置Git用户信息
bash
# 注意: --global 表示声明为全局设置,为可选项
$ git config --global user.name xxx
$ git config --global user.email xxxx.com
或者让DeepSeek帮你配 这是公司给我的邮箱信息
邮箱:xxxxxxxxxxxxxxxxxxx
用户名:xxxxxxxxxxxxxxxxxx
密码:xxxxxxxxxxxxxx
基于以上信息帮我完成Git的初始化
(4) 右键打开就好了
📖 二、Git 工作流程
深入理解 Git 的工作机制和四个关键区域
1. 四个关键区域
Git 的核心存储区域
(1) 区域说明
工作目录、暂存区、本地仓库、远程仓库
工作目录 → 暂存区 → 本地仓库 → 远程仓库
↓ ↓ ↓ ↓
修改文件 git add git commit git push
| 区域 | 说明 | 常用命令 |
|---|---|---|
| 📂 工作目录 | 你正在编辑的文件 | 编辑代码 |
| 📋 暂存区 | 准备提交的文件清单 | git add |
| 💾 本地仓库 | 已提交的历史版本 | git commit |
| ☁️ 远程仓库 | 托管在服务器上的共享仓库 | git push / git pull |
(2) 工作流程示例
从修改到推送的完整流程
a. 典型工作流
I. 第一步:修改文件
- 在工作目录修改文件
II. 第二步:暂存
- 使用
git add将修改加入暂存区
III. 第三步:提交
- 使用
git commit提交到本地仓库
IV. 第四步:推送
- 使用
git push推送到远程仓库
2. 常用场景示例
实际开发中的高频场景
(1) 保存当前进度
将当前修改保存为一个版本
bash
git add . # 把所有修改加入暂存区
git commit -m "完成登录功能" # 保存为一个版本
(2) 代码回退
代码改坏了,想回到之前的版本
bash
git log --oneline # 查看历史版本
git reset --hard <版本号> # 回到指定版本
(3) 多人协作
与团队成员协同开发
bash
git pull origin main # 拉取同事的代码
# 解决冲突(如果有)
git push origin main # 推送自己的代码
🚀 三、快速上手
从零开始使用 Git 的完整步骤
1. 获取工程链接
如何找到并复制仓库地址
(1) 常见平台链接格式
GitHub、GitLab、Gitee 等平台的链接格式
| 平台 | 示例链接格式 |
|---|---|
| GitHub | https://github.com/用户名/仓库名.git |
| GitLab | https://gitlab.com/用户名/仓库名.git |
| Gitee(码云) | https://gitee.com/用户名/仓库名.git |
| 公司私有 Git | http://git.公司域名.com/项目/仓库.git |
(2) 链接类型说明
HTTPS 与 SSH 链接的区别
a. HTTPS 链接
https://github.com/用户名/仓库名.git
- ✅ 优点:无需配置,直接可用
- ❌ 缺点:推送时需要输入账号密码(现在需要 token)
b. SSH 链接
git@github.com:用户名/仓库名.git
- ✅ 优点:配置一次后免密推送
- ❌ 缺点:需要先配置 SSH Key
2. 克隆仓库
将远程仓库下载到本地
(1) 基本克隆
克隆整个仓库到本地
bash
git clone <仓库地址>
# 示例:git clone https://github.com/facebook/react.git
(2) 克隆指定分支
只克隆特定分支的代码
bash
git clone -b <分支名> <仓库地址>
# 示例:git clone -b develop https://github.com/username/repo.git
(3) 完整操作流程示例
从克隆到开发的完整流程
bash
# 1. 克隆工程到本地
git clone https://github.com/facebook/react.git
# 2. 进入工程目录
cd react
# 3. 查看当前分支
git branch
# * main
# 4. 查看远程仓库信息
git remote -v
# origin https://github.com/facebook/react.git (fetch)
# origin https://github.com/facebook/react.git (push)
# 5. 拉取最新代码(已经在 main 分支)
git pull
# 6. 创建自己的开发分支
git checkout -b feature/my-feature
# 7. 修改代码后暂存
git add .
# 8. 提交
git commit -m "新增我的功能"
# 9. 推送到远程
git push origin feature/my-feature
🔄 四、更新代码与冲突解决
如何保持代码同步并处理合并冲突
1. 更新代码的方式
三种主要的更新方式
(1) git pull(拉取 + 合并)
最常用的更新方式
bash
git pull origin main
# 等同于:
git fetch origin main
git merge origin/main
(2) git fetch + git merge(分步操作)
更安全的更新方式
bash
# 先获取远程更新(不会自动合并)
git fetch origin
# 查看远程更新了什么
git log HEAD..origin/main --oneline
# 确认无误后手动合并
git merge origin/main
(3) git pull --rebase(变基方式)
保持线性历史记录的更新方式
bash
git pull --rebase origin main
# 等同于:
git fetch origin
git rebase origin/main
2. 冲突解决实战
当更新发生冲突时的完整解决流程
(1) 冲突是如何产生的?
多人修改同一文件的同一区域时产生冲突
时间线:
14:00 你开始修改 login.js 的第 10-15 行
14:05 同事修改了 login.js 的第 12-18 行并推送到远程
14:10 你准备推送,先 git pull
↓
❌ 冲突!Git 不知道应该保留谁的修改
(2) 冲突解决步骤
完整的四步解决流程
a. 步骤 1:查看冲突文件
bash
# 查看哪些文件有冲突
git status
# 输出示例:
# On branch main
# You have unmerged paths.
# (fix conflicts and run "git commit")
#
# Unmerged paths:
# (use "git add <file>..." to mark resolution)
# both modified: src/App.js
b. 步骤 2:打开冲突文件查看
冲突文件中会出现特殊标记:
javascript
// src/App.js
function handleLogin() {
<<<<<<< HEAD
// 你的修改
console.log('用户登录');
return validateUser();
=======
// 同事的修改
console.log('Login triggered');
return checkCredentials();
>>>>>>> origin/main
}
| 标记 | 含义 |
|---|---|
<<<<<<< HEAD |
你的当前修改开始 |
======= |
分隔线 |
>>>>>>> origin/main |
远程修改结束 |
c. 步骤 3:手动编辑解决冲突
javascript
// 保留需要的代码,删除冲突标记
function handleLogin() {
// 合并后的代码
console.log('用户登录');
return validateUser() && checkCredentials();
}
d. 步骤 4:标记冲突已解决并提交
bash
# 解决完冲突后,添加文件
git add src/App.js
# 查看状态,确认无冲突
git status
# 提交合并结果
git commit -m "解决合并冲突"
# 推送解决后的代码
git push origin main
💾 五、暂存与提交
Git 日常操作的核心命令
1. 状态查看与暂存
查看当前状态并将修改加入暂存区
(1) 查看当前状态
bash
git status
(2) 暂存文件
bash
# 暂存单个文件
git add <文件名>
# 暂存所有变更
git add .
# 暂存所有变更(包括删除)
git add -A
(3) 取消暂存
bash
git reset <文件名>
2. 提交与推送
将暂存的内容保存到仓库
(1) 基本提交
bash
git commit -m "提交说明"
(2) 提交并跳过暂存区
bash
git commit -a -m "提交说明"
(3) 推送到远程仓库
bash
# 基本推送
git push origin <分支名>
# 首次推送设置上游分支
git push -u origin <分支名>
(4) 查看提交历史
bash
git log --oneline --graph --all
🖥️ 六、Git GUI 工具
图形化界面让 Git 操作更直观
1. 内置 Git GUI
Git 自带的图形界面工具
bash
git gui
- 图形化界面,支持暂存、提交、推送等基本操作
2. 常用第三方 GUI 工具
流行的 Git 图形客户端
(1) 工具对比
| 工具 | 平台 | 特点 |
|---|---|---|
| Sourcetree | Windows/Mac | 免费,功能全面 |
| GitKraken | Win/Mac/Linux | 界面美观,支持跨平台 |
| GitHub Desktop | Win/Mac | 简洁易用,适合 GitHub 用户 |
| VS Code | 全平台 | 内置 Git 集成,支持可视化操作 |
3. VS Code Git 操作完全指南
在 VS Code 中完成所有 Git 操作
(1) 打开源代码管理面板
进入 Git 操作界面
| 方式 | 操作 |
|---|---|
| 快捷键 | Ctrl + Shift + G (Windows/Linux) 或 Cmd + Shift + G (Mac) |
| 侧边栏 | 点击左侧活动栏的「源代码管理」图标 |
| 命令面板 | Ctrl + Shift + P → 输入 "Git" |
(2) 日常操作可视化
暂存、提交、推送的图形化操作
a. 暂存文件
- 单个文件 :鼠标悬停文件 → 点击
+号 - 批量暂存 :悬停「变更」区域 → 点击
+号 - 取消暂存 :悬停暂存的文件 → 点击
-号
b. 提交
- 在消息框输入提交信息
- 点击「提交」按钮
- 下拉箭头可选择「提交并推送」
- 或「提交并暂存所有变更」
c. 推送
- 点击「同步更改」按钮 → 执行 pull + push
- 或点击「...」→ "推送"
(3) 冲突解决可视化
VS Code 提供的三栏对比编辑器
| 按钮 | 作用 |
|---|---|
| 接受当前 | 保留你的修改 |
| 接受传入 | 保留远程修改 |
| 接受两者 | 两者都保留 |
| 比较 | 并排对比差异 |
4. Git GUI操作完全指南
在 Git GUI 中完成所有 Git 操作
(1) 右键打开Git 终端

(2) 暂存修改
输入命令
c
git add .

(3) 右键打开Git GUI管理面板

(4)Git GUI 界面的大概介绍

(5) 点击 提交
这里的提交只是提交到本地,留着接下来生成**.patch**用

(6) 生成.patch
生成.patch命令
c
git format-patch -1 HEAD
📄 七、生成补丁文件
创建和应用代码补丁
1. 什么是 .patch 文件?
代码修改的差异信息文件
- .patch 文件包含了代码变更的差异信息
- 可以理解为代码修改的"补丁"
- 用于在不同仓库之间传递代码变更
2. 生成补丁文件
不同场景下的补丁生成方法*
(1) 生成未提交的修改补丁
bash
git diff > changes.patch
(2) 生成已暂存但未提交的补丁
bash
git diff --cached > staged.patch
(3) 生成指定提交的补丁
bash
# 单个提交
git format-patch -1 <commit-hash>
# 示例:git format-patch -1 a1b2c3d
# 多个提交
git format-patch <commit1>..<commit2>
# 最近 N 个提交
git format-patch -N
(4) 生成两个分支之间的补丁
bash
git format-patch <base-branch>..<feature-branch>
3. 应用补丁
检查并应用补丁文件
(1) 检查补丁
bash
git apply --check patchfile.patch
(2) 应用补丁
bash
# 普通应用
git apply patchfile.patch
# 保留提交信息的应用
git am patchfile.patch
📋 八、命令速查表
常用 Git 命令快速参考
1. 基础命令
| 操作 | 命令 |
|---|---|
| 克隆仓库 | git clone <url> |
| 查看状态 | git status |
| 暂存文件 | git add <file> |
| 提交 | git commit -m "msg" |
| 拉取更新 | git pull |
| 推送 | git push |
2. 分支管理
| 操作 | 命令 |
|---|---|
| 查看分支 | git branch -a |
| 切换分支 | git checkout <branch> |
| 创建分支 | git checkout -b <branch> |
| 合并分支 | git merge <branch> |
3. 历史查看
| 操作 | 命令 |
|---|---|
| 查看日志 | git log --oneline |
| 查看详细日志 | git log --graph --all |
| 查看文件差异 | git diff |
4. 补丁操作
| 操作 | 命令 |
|---|---|
| 生成补丁 | git diff > patch.patch |
| 检查补丁 | git apply --check patch.patch |
| 应用补丁 | git apply patch.patch |
⚠️ 九、注意事项与最佳实践
使用 Git 时的建议和规范
1. 提交规范
良好的提交习惯
- 提交前务必
git status确认变更内容 - 提交信息应简洁明了,说明本次修改的目的
- 遵循团队的提交信息格式规范
2. 更新策略
避免冲突的最佳实践
(1) 频繁拉取
bash
# 每天开始工作前先拉取
git pull
# 提交前再拉取一次
git pull
(2) 更新前先提交或暂存
bash
# 更新前先提交本地修改
git add .
git commit -m "WIP: 保存当前进度"
# 或者暂存起来
git stash
git pull
git stash pop # 恢复暂存,可能有冲突
(3) 使用功能分支
bash
# 不要直接在 main 分支开发
git checkout -b feature/new-login
# 开发完成后,先 rebase main
git fetch origin
git rebase origin/main
# 解决冲突后推送到远程
git push origin feature/new-login
3. 紧急情况处理
当出现问题时的应急措施
(1) 放弃合并
bash
# 放弃本次合并,回到更新前
git merge --abort
# 或使用 reset
git reset --hard HEAD
(2) 生成补丁前的测试
bash
# 生成补丁后建议先测试后再应用
git apply --check patchfile.patch
🎓 十、总结
Git 学习的核心要点
1. Git 的核心价值
Git = 代码的"时光机" + "多人协作工具"
- 帮你记住每一次修改
- 让你随时回到过去
- 让团队可以并行开发
- 全世界开发者都在用它
2. 初学者建议
如果你刚开始接触 Git
建议从以下五个命令开始学习:
① 克隆仓库
c
git clone
② git add暂存文件
c
git add
③ 提交变更
c
git commit
④ 推送代码
c
git push
⑤ 拉取更新
c
git pull
这五个命令就能满足大部分日常需求。
3. 进一步学习
深入学习 Git 的方向
- 理解 Git 的内部工作原理
- 掌握高级分支管理技巧
- 学习交互式变基(interactive rebase)
- 了解 Git hooks 的自动化能力
- 探索 Git bisect 等调试工具
参考资料 :Git 官方文档