STM32F4双重ADC同步模式实现七路高速采集的设计与实现
2026/10/15 23:07:07
这里将git要了解的知识,做一个提纲挈领的总结
认识git要认识哪些领域,才算较为全面的认识。
我们这里分为3个阶段
第一个阶段:用大白话讲清楚,git的体制,涉及哪些主体,提供了什么机制,可以干什么
第二个阶段:了解基本的机制,可以在工作中灵活的使用。
第三个阶段:从git的发展的角度,主页的角度,看清楚整个git版本升级迭代,都升级了哪些操作。
第一个阶段:
1.什么是git,他提供了哪些机制供使用
第二个阶段:
2.使用git如何配置,落地
1.本地如何配置git,本地提供了哪些操作git的机制
2.idea如何配置git,idea提供了哪些操作git的机制
3.gitlab上如何配置git,这个又提供了哪些操作git的机制
4.gitee或者github上如何配置git,提供了哪些逻辑概念,可以操作git。
这里的每个子标题都有大量的信息量,要掌握。但是要先对这些概念有个全域的视角,去了解,这个设计的思路。
以下是对 Git 知识体系的提纲挈领式总结,按三个认知阶段组织,兼顾理论深度与实践落地:
| 主体 | 角色 | 类比 |
|---|---|---|
| 工作区(Working Tree) | 你正在编辑的文件 | 画布 |
| 暂存区(Staging Area/Index) | 待提交的变更预览区 | 草稿板 |
| 本地仓库(.git) | 本机完整历史数据库 | 个人档案馆 |
| 远程仓库(Remote) | 团队共享的代码中枢 | 公共档案馆 |
✅ 关键认知:Git 是分布式的——每个开发者都有完整历史,不依赖中央服务器
| 机制 | 作用 | 典型场景 |
|---|---|---|
| 快照机制 | 每次 commit 保存完整文件快照(非 diff) | 精确回溯任意历史状态 |
| 分支机制 | 轻量级指针(branch = commit hash),秒级创建 | 功能开发、Bug 修复隔离 |
| 合并机制 | 三路合并(3-way merge)+ rebase 重写历史 | 集成多分支代码 |
| 分布式协作 | push/pull/fetch 实现仓库同步 | 团队并行开发 |
| 对象模型 | blob(文件)、tree(目录)、commit(提交)、tag(标签)四类对象构成 DAG | 底层数据一致性保障 |
git log+git checkout)# 基础配置(全局)gitconfig --global user.name"Your Name"gitconfig --global user.email"your@email.com"gitconfig --global core.editor"code --wait"# 默认编辑器# SSH 密钥配置(免密连接)ssh-keygen -t ed25519 -C"your@email.com"cat~/.ssh/id_ed25519.pub# 添加到 GitLab/GitHub/Gitee# 常用别名(提升效率)gitconfig --global alias.co checkoutgitconfig --global alias.br branchgitconfig --global alias.ci commitgitconfig --global alias.st status本地核心操作机制:
git add→ 暂存变更(进入 index)git commit→ 生成快照(写入 .git/objects)git branch/git checkout→ 分支切换git merge/git rebase→ 整合变更git stash→ 临时保存工作进度git reflog→ 恢复“消失”的 commit| 配置项 | 说明 |
|---|---|
| VCS → Enable Version Control | 关联项目与 Git 仓库 |
| Settings → Version Control → Git | 指定 git.exe 路径 |
| Settings → Version Control → GitHub/GitLab | 配置 Token(替代密码) |
IDEA 提供的图形化机制:
💡 实践建议:日常操作用图形界面,复杂场景(如 rebase -i)切回命令行
| 概念 | 说明 | 与 GitHub 差异 |
|---|---|---|
| Project | 仓库单位 | 同 GitHub Repository |
| Merge Request (MR) | 代码合并申请 | 同 GitHub Pull Request(语义相同)[[34]] |
| Protected Branches | 保护分支(需 MR + 审批) | 同 GitHub Protected Branches |
| CI/CD Pipelines | 原生集成.gitlab-ci.yml | GitHub 用 Actions,GitLab 用 Runner 原生支持 [[31]] |
| Groups | 多项目组织单元 | 类似 GitHub Organizations |
关键配置:
User Settings → SSH KeysUser Settings → Access Tokens(用于 API/IDE 集成)| 平台 | 核心概念 | 特色机制 |
|---|---|---|
| GitHub | Fork → PR 流程 | 社区驱动(Stars/Forks/Watch)、Actions 自动化 |
| Gitee | 类 GitHub 体验 | 国内访问加速、Gitee Pages 静态托管、企业版支持 |
通用协作流程:
⚠️ 注意:GitHub 强调“Fork + PR”开源协作,GitLab/Gitee 企业版更倾向“直接 MR + 权限控制”
| 时间 | 版本 | 重大改进 |
|---|---|---|
| 2005.04 | 初始提交 | Linus 提交第一个 README [[12]] |
| 2005.12 | v1.0 | 首个稳定版,脱离 Linux 内核专用 [[13]] |
| 2015 | v2.0 | 语义化版本起点,改进git push默认行为 |
| 2018 | v2.17+ | Wire Protocol v2(提升 fetch/push 性能) |
| 2020 | v2.25+ | 内置git switch/git restore(替代 checkout 混乱语义) |
| 2023 | v2.40 | git jump工具增强、cat-file性能优化、Windows 启动加速 [[1]] |
| 功能 | 早期形态 | 现代形态 | 设计意图 |
|---|---|---|---|
| 分支 | 手动操作 ref | git switch -c feature | 降低分支操作认知负担 |
| 暂存 | git add -p交互 | git restore --staged | 分离“撤销暂存”与“切换分支”语义 |
| 历史查询 | git log纯文本 | git log --graph --oneline | 可视化分支拓扑 |
| 稀疏检出 | 全量 clone | git sparse-checkout | 大型仓库按需下载 |
| 二分查找 | 脚本实现 | git bisect内置 | 快速定位 Bug 引入点 |
.git/index格式,加速 status/diffgit pack-objects支持多核压缩| 阶段 | 核心目标 | 标志性能力 | 验收标准 |
|---|---|---|---|
| 第一阶段 | 理解“为什么这样设计” | 能向新人解释快照/分支/分布式 | 画出四大主体关系图 + 说明 merge/rebase 区别 |
| 第二阶段 | 熟练“日常怎么用” | 独立完成分支开发 → MR → 合并全流程 | 无 GUI 依赖完成复杂场景(如 rebase 冲突解决) |
| 第三阶段 | 洞察“未来怎么变” | 预判新特性对工作流的影响 | 阅读 release notes 并评估是否引入团队 |
💡终极建议:先掌握第二阶段(实战),再回溯第一阶段(原理),最后用第三阶段(演进)建立长期技术视野——这是最符合认知规律的学习路径。