Git 完整版学习笔记
前言本文为全网最实用的系统化 Git 学习笔记摒弃晦涩理论全部以「工作实战」为核心包含Git 底层原理、工作区/暂存区/本地仓库/远程仓库完整机制、全套高频命令分类、分支管理、合并冲突、回滚撤销、远程协作、Git Flow 工作流、面试必考知识点、常见报错解决方案。适合零基础入门、日常开发查阅、面试突击、团队协作规范落地。第一章 Git 核心概念与底层原理必须看懂1.1 什么是 GitGit 是一款分布式版本控制系统。核心作用追踪代码变更、保存历史版本、多人协作、随时回退、分支并行开发。和 SVN 的最大区别SVN集中式—— 依赖中央服务器断网无法提交、无法查看历史Git分布式—— 每个人本地都是完整仓库断网可开发、提交、分支切换联网后同步即可1.2 Git 四大核心区域重中之重所有 Git 命令本质都是文件在四个区域之间流动。工作区Working Directory你电脑真实看到的代码文件暂存区Stage / Index临时存放即将提交的修改中转站本地仓库Local Repo.git 文件夹永久保存版本快照远程仓库Remote RepoGitHub / Gitee / GitLab 云端仓库文件流转逻辑工作区 →git add→ 暂存区 →git commit→ 本地仓库 →git push→ 远程仓库1.3 Git 的三种文件状态Untracked 未跟踪新文件Git 不管理Modified 已修改已跟踪文件内容改动未暂存Staged 已暂存已 add等待 commit1.4 快照机制Git 核心原理Git不是保存差异而是每次 commit保存一次完整文件快照。优势回滚极速、分支切换极快、版本极其稳定。第二章 Git 安装与全局初始化第一次配置必看2.1 安装校验安装完成后终端输入git --version2.2 全局用户名邮箱必须配置一次所有电脑仓库统一使用该身份git config --global user.name 你的用户名 git config --global user.email 你的邮箱查看配置git config --global --list2.3 初始化本地仓库git init执行后生成隐藏文件夹.git代表该目录被 Git 管理。2.4 .gitignore 文件企业必备作用忽略不需要 Git 管理的文件常见忽略内容node_modules、dist、build、日志、缓存、环境变量、IDE 配置标准通用模板# 依赖目录 node_modules/ venv/ .dist/ build/ # 环境变量 .env .env.local # 日志 *.log # IDE 配置 .vscode/ .idea/ # 系统文件 .DS_Store Thumbs.db第三章 Git 基础核心命令日常 90% 场景3.1 查看状态git status # 详细状态 git status -s # 简洁状态推荐3.2 暂存命令addgit add 文件名 # 单个文件暂存 git add . # 所有修改、新增文件暂存不包含删除 git add -A # 全部变更新增/修改/删除暂存最常用3.3 提交命令commitgit commit -m feat: 新增用户登录功能规范提交格式团队通用feat新功能fix修复 bugrefactor代码重构docs文档修改style格式调整test新增测试用例chore构建/依赖调整3.4 查看日志git log # 完整日志 git log --oneline # 简洁单行日志最常用 git log --graph # 分支图形化日志 git log -n 3 # 最近3条记录第四章 Git 撤销与回滚命令工作最常用、最关键所有撤销场景全覆盖直接对照使用4.1 工作区修改撤销未 add丢弃所有未暂存的修改恢复成最近版本git checkout . # 新版推荐 git restore .4.2 撤销暂存已 add未 commitgit reset HEAD .作用文件从暂存区退回工作区代码保留只是取消暂存4.3 撤销最近一次 commit保留代码git reset --soft HEAD~1场景提交写错了、想重新整理提交效果版本回退上一版代码不变变回已修改状态4.4 彻底回退版本丢弃本地修改git reset --hard 版本号 git reset --hard HEAD~1 # 回退上一个版本高危命令会彻底删除本地变更谨慎使用4.5 修改上一次 commit 注释git commit --amend第五章 Git 分支全套命令多人协作核心5.1 分支核心认知main / master主分支线上稳定代码禁止直接提交develop开发分支feature/xxx功能分支fix/xxxbug 修复分支5.2 分支基础命令git branch # 查看本地分支 git branch -a # 查看所有分支包含远程 git branch 分支名 # 创建分支 git checkout 分支名 # 切换分支 git switch 分支名 # 新版切换分支 git checkout -b 分支名 # 创建并切换最常用5.3 删除分支git branch -d 分支名 # 安全删除已合并 git branch -D 分支名 # 强制删除未合并5.4 分支合并 merge场景把 feature 分支代码合并到 maingit checkout main git merge feature/xxx5.5 分支合并 rebase面试高频rebase变基整理提交记录让分支提交线更干净git checkout feature/xxx git rebase main重要原则公共分支绝对不要 rebase只在自己私有分支使用第六章 冲突解决工作必备6.1 冲突产生原因两个分支同一行代码被修改Git 无法自动合并需要人工处理。6.2 冲突文件标识 HEAD当前分支代码分隔线 分支名被合并分支代码6.3 解决冲突标准流程打开冲突文件人工修改保留正确代码删除所有冲突标记git add .git commit第七章 远程仓库全套命令GitHub/Gitee/GitLab7.1 关联远程仓库git remote add origin 远程仓库地址7.2 查看远程关联git remote -v7.3 推送代码git push origin 分支名 git push -u origin 分支名 # 首次推送绑定上游分支 git push # 后续直接推送7.4 拉取代码git pull origin 分支名 git pull7.5 克隆项目git clone 仓库地址 git clone 仓库地址 自定义文件夹名7.6 远程分支操作git fetch origin # 拉取远程分支信息不合并代码 git checkout 远程分支名 # 切换远程分支到本地 git push origin --delete 分支名 # 删除远程分支第八章 Git 高级实用命令提效神器8.1 储藏代码 stash临时保存工作区场景写到一半需要切分支不想提交半成品代码git stash # 临时储藏所有修改 git stash list # 查看储藏列表 git stash pop # 恢复最新储藏并删除 git stash apply # 恢复储藏不删除 git stash clear # 清空所有储藏8.2 挑选合并 commit cherry-pick把某个分支的某一条提交单独合并到当前分支git cherry-pick 版本号8.3 标签 tag版本发布git tag v1.0.0 # 创建标签 git push origin v1.0.0 # 推送标签 git tag # 查看标签 git tag -d v1.0.0 # 删除本地标签 git push origin :v1.0.0 # 删除远程标签第九章 企业标准 Git 工作流GitFlow9.1 分支规范main线上稳定版本永远可部署develop开发主分支所有功能合并至此feature/*新功能分支从 develop 拉出fix/*bug 修复分支release/*发布测试分支9.2 标准开发流程从 develop 拉取 feature 分支开发开发完成合并回 develop测试通过后合并到 main打 tag 发布版本第十章 高频报错与解决方案实战避坑10.1 git push 报错本地版本落后远程解决方案先拉再推git pull10.2 冲突太多不想手动解决git merge --abort # 放弃本次合并10.3 误操作需要找回删除的 commitgit reflog找到历史版本号reset 恢复即可第十一章 超精简【日常开发命令速查表】可直接收藏# 初始化 git init # 日常提交三步 git add -A git commit -m fix: 修复xx问题 git push # 拉取最新代码 git pull # 新建功能分支 git checkout -b feature/demo # 合并分支 git checkout main git merge feature/demo # 临时保存代码 git stash git stash pop # 撤销未提交修改 git restore . # 撤销上一次commit保留代码 git reset --soft HEAD~1 # 彻底回退版本 git reset --hard 版本号总结Git 的核心不是背命令而是理解四大区域流转 分支机制 撤销逻辑。99% 的工作问题代码撤回、版本回退、冲突解决、多人协作全部可以通过本文命令解决。