尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【Git】03.Git文件夹解析+四个区常用命令

【Git】03.Git文件夹解析+四个区常用命令
📅 发布时间:2026/7/14 22:16:00

一、.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 # 拉取所有远程

③ 本地仓库 → ② 暂存区(撤销 commit)

bash bashgit reset --soft HEAD~1 # 回退 commit,保留暂存区和工作区

③ 本地仓库 → ① 工作区(彻底回退)

bash bashgit reset --mixed HEAD~1 # 回退 commit + 暂存区(默认) git reset --hard HEAD~1 # 回退 commit + 暂存区 + 工作区(⚠危险)

② 暂存区 → ① 工作区(撤销 add)

bash 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

✅ 日常开发流(最常用)

bash

git status

git add drivers/uart/

git commit -m "drivers: add uart v2 with dma"

git pull --rebase

git push

✅ 临时保存现场(中断调试)

bash

git stash # 保存当前修改

git stash list

git stash pop # 恢复并删除 stash

git stash apply # 恢复但不删除

嵌入式里经常:

“板子跑飞了,我要切分支查问题”

✅ 查看差异(非常高频)

bash

git diff # 工作区 vs 暂存区

git diff --cached # 暂存区 vs 本地仓库

git diff HEAD~1 # 最近一次提交差异

git diff branchA branchB

✅ 查看历史(查是谁改炸了)

bash

git log

git log --oneline

git log -p drivers/uart/

git blame drivers/uart/uart.c

✅ 分支管理(嵌入式必会)

bash

git branch

git branch feature/eth

git checkout feature/eth

git switch feature/eth # Git 2.23+

git merge feature/eth

git rebase main

✅ 嵌入式常见坑

坑

正确做法

把 .config提交

用 defconfig

提交 .o / .elf

写 .gitignore

提交 SDK 工具链

只提交版本信息

在 repo 里放固件 bin

用 LFS 或独立仓库

用 main 直接发版本

打 tag:v1.2.0

二、一句话终极记忆法(嵌入式版)

改代码在 Workspace,add 进 Index,commit 进 Repo,push 上 Remote;

stash 救急,rebase 保整洁,tag 定版本,diff 查真相。

相关新闻

  • 2026驻马店物流专线公司|整车零担、超限大件正规物流公司 - GrowUME
  • MATLAB版Mean Shift目标跟踪实战工程:带GUI操作界面、视频演示与可运行源码
  • 亨得利官方钟表服务中心|官方地址与售后电话权威信息通知(2026年7月最新) - 亨得利官方

最新新闻

  • Linux内核调试利器:ftrace原理与应用详解
  • 元初混沌 6G 全域通感一体化体系架构 第一卷二阶第二十篇 移动终端跨层级快速适配机制
  • VSCode 2026 新特性与 AI 智能配置指南(超详细)
  • 044-刻意练习的时间规划
  • 模板驱动文档自动化:结构化内容复用与智能渲染实战
  • PixWorld:像素空间3D场景生成与重建统一框架实践指南

日新闻

  • AWS SSM安全运维实践:零公网暴露的合规远程开发方案
  • Tableau 2024.1 图表选择指南:5种业务场景与最佳图表类型匹配
  • dsPIC33FJ与CMT-8540S-SMT在嵌入式音频处理中的高效应用

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号