跳到主要内容STM32 项目 Git 版本管理入门教程 | 极客日志C
STM32 项目 Git 版本管理入门教程
综述由AI生成面向 STM32 嵌入式开发初学者,介绍 Git 版本管理基础。内容包括 Git 基本概念、工作区与仓库流程、.gitignore 配置(针对 MDK/EIDE 编译产物)、本地仓库初始化、代码提交与推送至 GitHub 的操作步骤。此外,还整理了常见错误(如远程地址冲突、认证失败、分支问题)的解决方案及日常命令速查表,帮助开发者规范化管理嵌入式项目代码。
蜜桃汽水32 浏览 STM32 项目 Git 版本管理入门教程
适合人群:从未使用过 Git 的 STM32 嵌入式开发初学者
工具准备:Git for Windows(Git Bash)、GitHub 账号、VPN/代理(可选)
一、基本概念理解
Git 是什么?
Git 是一个版本管理工具,可以记录你每次修改代码的历史,随时可以回退到任意版本。
三个区域
工作区(你的项目文件夹) → git add → 暂存区(准备提交的文件列表) → git commit → 本地仓库(保存在本机的版本记录) → git push → 远程仓库(GitHub 云端)
常用命令一览
| 命令 | 作用 |
|---|
git init | 初始化本地仓库 |
git add . | 添加所有文件到暂存区 |
git status | 查看当前状态 |
git commit -m "说明" | 提交到本地仓库 |
git push | 推送到远程仓库(GitHub) |
git remote add origin 地址 | 关联远程仓库 |
git remote -v | 查看远程仓库地址 |
git log --oneline | 查看提交历史 |
二、准备工作
1. 安装 Git
2. 配置用户信息(只需做一次)
打开 Git Bash 执行:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
3. 在 GitHub 创建空仓库
- 登录 https://github.com
- 点击右上角
+ → New repository
- 填写仓库名称
- ⚠️ 不要勾选任何初始化选项
- 点击
Create repository
- 复制仓库地址备用:
https:
三、配置 .gitignore
为什么需要 .gitignore?
STM32 项目编译后会产生大量中间文件(.axf、.o、.map 等),这些文件不需要上传,通过 .gitignore 告诉 Git 忽略它们。
在项目根目录创建 .gitignore 文件
cd /f/你的项目路径
touch .gitignore
MDK-ARM/*/
MDK-ARM/*.uvguix.*
MDK-ARM/*.uvoptx
MDK-ARM/DebugConfig/
MDK-ARM/RTE/
EIDE/.cmsis/
EIDE/.vscode/
EIDE/build/
EIDE/.arts/log/
Drivers/CMSIS/DSP/DSP_Lib_TestSuite/
Drivers/CMSIS/NN/
Drivers/CMSIS/RTOS/
Drivers/CMSIS/RTOS2/
Drivers/CMSIS/docs/
Thumbs.db
.DS_Store
*.suo
⚠️ 注意事项
.gitignore 必须在 git add .之前配置好
- 如果先
git add . 后才修改 .gitignore,需要清空暂存区重来
四、初始化本地仓库
cd /f/你的项目路径
git init
git add .gitignore
git add .
git status
检查 git status 输出
- ✅ 应该看到:
APP/BSP/Core/Drivers/ 等源码目录
- ❌ 不应该看到:
*.axf *.o *.map 等编译产物
五、提交代码到本地
git commit -m "feat: initial commit - STM32 项目初始提交"
提交说明规范(可选)
| 类型 | 含义 | 示例 |
|---|
feat | 新增功能 | feat: 添加霍尔传感器驱动 |
fix | 修复 bug | fix: 修复串口通信异常 |
docs | 修改文档 | docs: 更新注释说明 |
refactor | 代码重构 | refactor: 优化低功耗逻辑 |
chore | 其他修改 | chore: 更新.gitignore |
也可以直接写中文:git commit -m "初始提交:STM32 项目"
成功提示:
[main (root-commit) xxxxxxx] feat: initial commit
六、推送代码到 GitHub
git remote add origin https://github.com/你的用户名/仓库名.git
git branch -m master main
git push -u origin main
推送成功提示:
To https:
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
验证是否成功
七、后续更新代码
git status
git add .
git commit -m "feat: 描述本次修改内容"
git push
第二次之后推送直接用 git push 即可,不需要加 -u origin main
八、常见错误与解决方法
❌ 错误 1:staged content different from both the file and the HEAD
error: the following file has staged content different from both the file and the HEAD: .gitignore (use -f to force removal)
原因: 暂存区的文件内容和工作区不一致(先 add 后又修改了文件)
git rm --cached -r -f .
git add .
❌ 错误 2:remote origin already exists
error: remote origin already exists.
git remote -v
git push -u origin main
git remote set-url origin https://github.com/你的用户名/仓库名.git
❌ 错误 3:src refspec main does not match any
error: src refspec main does not match any
error: failed to push some refs
git log --oneline
git add .
git commit -m "feat: initial commit"
git push -u origin main
❌ 错误 4:no branch named 'master'
fatal: no branch named 'master'
原因: 本地分支已经是 main,不存在 master
❌ 错误 5:Connection was reset / Failed to connect to github.com port 443
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
git push -u origin main
git config --global --unset http.proxy
git config --global --unset https.proxy
git push -u origin main
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
cat ~/.ssh/id_rsa.pub
git remote set-url origin [email protected]:你的用户名/仓库名.git
git push -u origin main
git remote set-url origin https://gitee.com/你的用户名/仓库名.git
git push -u origin main
❌ 错误 6:Authentication failed
fatal: Authentication failed for 'https:
原因: GitHub 账号密码验证失败(GitHub 已不支持密码登录)
解决: 使用 Personal Access Token 代替密码
- GitHub → Settings → Developer settings → Personal access tokens
- 点击 Generate new token
- 勾选
repo 权限
- 生成后复制 Token
- 推送时密码处填入 Token
九、日常使用命令速查
初次提交流程
cd /f/项目路径
git init
touch .gitignore
git add .
git status
git commit -m "初始提交"
git remote add origin https://github.com/用户名/仓库名.git
git branch -m master main
git push -u origin main
日常更新流程
git add .
git commit -m "描述修改内容"
git push
常用查看命令
git status
git log --oneline
git remote -v
git branch
撤销操作
git rm --cached -r -f .
git reset --soft HEAD~1
git show 提交 ID
附:Git 操作流程图
开始 │
├─ 新项目? │
├─ 是 → git init → 配置.gitignore → git add . → git commit → git remote add → git push │
└─ 否 ↓ │
└─ 修改了代码? └─ 是 → git add . → git commit -m "说明" → git push
💡 核心记忆口诀: add 暂存 → commit 本地存档 → push 上传云端
出了问题先看提示,再对照本文错误列表解决!
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online