HiHuo
首页
博客
手册
工具
首页
博客
手册
工具
  • Git 高级用法

    • 修改冲突文件
    • Git 高级用法与全命令手册(架构师版)
    • Git 使用技巧参考手册
    • Git 完整手册(中高级开发者版)

太好了,这一步非常关键。 很多人能用 Git,但真正在团队协作或大型项目里完全掌控版本流转的开发者很少。 下面我给你准备一份 📘《Git 高级用法与全命令手册》—— 涵盖命令体系 + 实战语义 + 深层原理 + 可视化心智模型。

⸻

🧩 Git 高级用法与全命令手册

⸻

🧭 第一章:Git 本质认知

在理解命令前,要先明白 Git 到底是“干什么”的。

🔹 Git 是什么?

Git 是一个内容寻址的有向无环图(DAG)存储系统。

•	每个 commit 是一个节点,指向它的父节点;
•	每个节点指向一棵树(项目快照);
•	每个对象(commit / tree / blob)都有一个唯一 SHA1 哈希。

即:

CommitA --> CommitB --> CommitC (HEAD)指向当前工作分支

⸻

🧠 第二章:Git 基本工作区概念

名称 位置 说明 工作区(Working Directory) 文件系统 你编辑代码的地方 暂存区(Index / Stage) .git/index 已 add 的文件列表 本地仓库(Local Repo) .git/objects 已 commit 的版本历史 远程仓库(Remote Repo) GitLab / GitHub 同步协作副本

数据流动路径:

编辑 → git add → git commit → git push

⸻

⚙️ 第三章:核心命令全景图(分类索引)

类别 常用命令 初始化与配置 git init, git config 状态与比较 git status, git diff, git log 文件追踪 git add, git rm, git mv 提交历史 git commit, git reset, git revert 分支与合并 git branch, git checkout, git merge, git rebase 远程操作 git fetch, git pull, git push, git remote 标签与版本 git tag, git show, git describe 暂存与修复 git stash, git cherry-pick, git bisect 清理与优化 git gc, git fsck, git prune

⸻

🔀 第四章:四大“灵魂命令”的深度理解

⸻

🧩 1️⃣ git fetch

拉取远程更新,但不合并。

•	只是把远程分支更新到 .git/refs/remotes/origin/xxx
•	不会改动你的本地代码
git fetch origin main

🌰 实例:

本地 main: A--B 远程 origin/main: A--B--C

执行 git fetch 后: 本地 main: A--B origin/main: A--B--C (更新了)

📘 用法:

git fetch --all           # 拉取所有远程更新
git fetch origin feature  # 仅拉取某分支

⸻

🔁 2️⃣ git merge

把另一个分支的历史合并进当前分支。

git merge origin/main

会生成一个新的合并提交(merge commit):

 D (merge)
/ \

---A---B---C (origin/main)

📘 常用参数:

参数 含义 --no-ff 强制创建 merge commit(保留分支历史) --squash 将多个提交压缩成一个 --abort 取消冲突中的合并操作

⸻

🧭 3️⃣ git checkout

切换分支 / 恢复文件。

切换分支

git checkout develop

恢复文件

git checkout main -- path/to/file

📘 注意: • 切换分支会更新工作区; • 如果文件有未提交修改,会提示冲突。

🆕 新命令(推荐使用):

git switch <branch>   # 切换分支
git restore <file>    # 恢复文件

⸻

🔄 4️⃣ git rebase

把当前分支“移动”到目标分支的最新提交之后。

基本原理:

原始: main: A--B--C feature: D--E

rebase 后: main: A--B--C--D'--E' (D、E 被重放)

命令:

git checkout feature git rebase main

📘 结果: • 线性历史; • 无额外 merge commit; • 适合个人分支与主分支对齐。

🧨 注意:

rebase 会重写历史(修改 commit ID), 不要对已 push 到远程的分支执行 rebase。

⸻

🔍 第五章:fetch、merge、pull、rebase 的区别总结

命令 是否更新本地代码 是否创建新 commit 是否改变历史 fetch ❌ 否 ❌ 否 ❌ 否 merge ✅ 是 ✅ 是 ❌ 否 pull ✅ 是 ✅ 可能(如果有冲突) ❌ 否 rebase ✅ 是 ❌ 否(重写历史) ✅ 是

💡 git pull = git fetch + git merge(或 git rebase,取决于配置)

⸻

🧱 第六章:分支与历史操作秘籍

🔹 查看分支

git branch # 本地分支 git branch -r # 远程分支 git branch -a # 所有分支

🔹 新建分支

git branch feature/api git checkout -b feature/api

🔹 删除分支

git branch -d feature/api git push origin --delete feature/api

🔹 查看图形历史

git log --graph --oneline --decorate --all

⸻

🧮 第七章:提交修正与回退

🧩 修改上一次提交

git commit --amend

(在不产生新 commit 的情况下修改上次提交)

🧩 撤销 commit(保留修改)

git reset --soft HEAD~1

🧩 撤销 commit(丢弃修改)

git reset --hard HEAD~1

🧩 回滚历史(生成反向 commit)

git revert <commit_id>

⸻

🧰 第八章:日常实战组合

💡 同步主干

git fetch origin git rebase origin/main

💡 分支更新合并

git checkout main git merge feature/api git push

💡 冲突修复

git status

修改冲突文件

git add . git rebase --continue

💡 提交临时保存

git stash git stash list git stash pop

⸻

🧠 第九章:高级技巧与冷门命令

命令作用
git reflog查看所有操作记录(包含丢失分支)
git cherry-pick <commit>拣选一个提交应用到当前分支
git bisect二分查找引入 bug 的 commit
git blame <file>查看每行最后修改人
git clean -fd删除未追踪文件
git gc清理压缩对象数据库
git worktree在同一 repo 建多个工作区
git submodule管理嵌套子仓库
git archive打包导出版本内容

⸻

📘 第十章:心智模型总结

Git 操作心智流

编辑 → 暂存 → 提交 → 推送 ↓ 分支合并 ↔ 远程同步 ↓ 回退 / 修正 / 压缩历史

用一句话总结:

Git 的本质是移动“指针”, 每个命令都是在操作 HEAD、branch、index、object 四者之间的关系。

⸻

🔧 建议练习题(架构师级)

1️⃣ 模拟冲突:两个分支改同一文件,用 merge / rebase 各解决一次 2️⃣ 模拟丢分支:误删后用 reflog 找回 3️⃣ 模拟 rebase 打平历史 4️⃣ 模拟 cherry-pick 把某个 bug fix 应用到老版本 5️⃣ 模拟 stash + pop 结合冲突场景

⸻

是否要我帮你把这份手册整理成一份 Markdown + PDF 可打印版? 我可以按章节生成带目录的版本,方便你随时查阅或放进开发文档系统(如 Obsidian / Cursor)。

Next
Git 高级用法与全命令手册(架构师版)