【Git】03.Git文件夹解析+四个区常用命令
一、.git 本地仓库Local Repo.git 本地仓库Local Repo​里面包含了版本历史、分支、HEAD、真正的数据库。二、四个区回顾① Workspace 工作区 ② Index 暂存区 ③ Local Repo 本地仓库 ④ Remote Repo 远程仓库➡️ 正向流动正常开发流程① 工作区 → ② 暂存区bash bashgit add file # 添加指定文件 git add . # 添加当前目录所有变更 git add -p # 交互式添加推荐很专业② 暂存区 → ③ 本地仓库bash bashgit commit -m msg # 提交暂存区内容 git commit -am msg # 自动 add 已跟踪文件并提交⚠不含新文件③ 本地仓库 → ④ 远程仓库bash bashgit push origin main # 推送到远程 main 分支 git push # 已跟踪上游分支时可简写 git push --set-upstream origin dev # 新建远程分支并关联⬅️ 反向流动回退 / 同步④ 远程仓库 → ③ 本地仓库bash bashgit fetch origin # 仅拉取不合并 git fetch --all # 拉取所有远程③ 本地仓库 → ② 暂存区撤销 commitbash bashgit reset --soft HEAD~1 # 回退 commit保留暂存区和工作区③ 本地仓库 → ① 工作区彻底回退bash bashgit reset --mixed HEAD~1 # 回退 commit 暂存区默认 git reset --hard HEAD~1 # 回退 commit 暂存区 工作区⚠危险② 暂存区 → ① 工作区撤销 addbash bashgit reset HEAD file # 取消暂存保留修改 git restore --staged file # Git 2.23 推荐写法③ 本地仓库 → ① 工作区用仓库覆盖工作区bash bashgit checkout HEAD -- file # 用 HEAD 版本覆盖工作区文件 git restore file # Git 2.23 推荐写法④ 远程仓库 → ① 工作区拉代码并合并bash bashgit pull # fetch merge git pull --rebase # fetch rebase嵌入式团队常用 特殊但常用的跨区操作工作区 ← 暂存区丢弃修改bash bashgit checkout -- file # 老写法 git restore file # 新写法暂存区 ← 本地仓库精确回退某个文件bash bashgit reset HEAD file工作区 ← 远程仓库强制同步bash bashgit fetch origin git reset --hard origin/main 一张“命令流向表”重点收藏流向命令备注①→②git add工作区 → 暂存区②→③git commit暂存区 → 本地仓库③→④git push本地仓库 → 远程④→③git fetch远程 → 本地仓库③→②git reset --soft回退 commit②→①git restore --staged撤销 add③→①git restore用仓库覆盖工作区④→①git pull拉取并合并⚠️ 一条红线非常重要凡是带--hard的命令bashbashgit reset --hard✅ 会同时清空暂存区工作区未提交修改 ❌不可恢复嵌入式开发里建议多用 git status少用 reset --hard用 git stash临时保存✅ 一句话速记add 进暂存commit 进仓库push 上云端reset 往回走restore 清现场。三、Git 四个区 全流向命令总表核心一、嵌入式工程师专用 Git Cheat Sheet✅ 日常开发流最常用bashgit statusgit add drivers/uart/git commit -m drivers: add uart v2 with dmagit pull --rebasegit push✅ 临时保存现场中断调试bashgit stash # 保存当前修改git stash listgit stash pop # 恢复并删除 stashgit stash apply # 恢复但不删除嵌入式里经常“板子跑飞了我要切分支查问题”✅ 查看差异非常高频bashgit diff # 工作区 vs 暂存区git diff --cached # 暂存区 vs 本地仓库git diff HEAD~1 # 最近一次提交差异git diff branchA branchB✅ 查看历史查是谁改炸了bashgit loggit log --onelinegit log -p drivers/uart/git blame drivers/uart/uart.c✅ 分支管理嵌入式必会bashgit branchgit branch feature/ethgit checkout feature/ethgit switch feature/eth # Git 2.23git merge feature/ethgit rebase main✅ 嵌入式常见坑坑正确做法把 .config提交用 defconfig提交 .o / .elf写 .gitignore提交 SDK 工具链只提交版本信息在 repo 里放固件 bin用 LFS 或独立仓库用 main 直接发版本打 tagv1.2.0二、一句话终极记忆法嵌入式版改代码在 Workspaceadd 进 Indexcommit 进 Repopush 上 Remotestash 救急rebase 保整洁tag 定版本diff 查真相。

相关新闻