在使用 Git 管理 Keil MDK(μVision 5)工程时,需要忽略编译生成的临时文件、调试文件、用户配置等非必要内容。以下是忽略文件的详细列表及说明,可直接保存为 .gitignore
文件:
Keil MDK 工程的 .gitignore
文件
gitignore
# ------------------------------
# Keil MDK 工程专用忽略规则
# ------------------------------# --- 工程文件与配置 ---
*.uvoptx # 用户工程选项文件(包含本地调试配置,建议忽略)
*.uvguix.* # 用户界面布局文件(如窗口位置等,需忽略)
*.bak # 备份文件(如工程文件自动备份)
*.crf # 交叉引用文件(编译生成)
*.d # 依赖文件(编译生成)# --- 编译输出文件 ---
*.o # 目标文件(编译生成)
*.obj # 目标文件(Windows 风格)
*.axf # ELF 格式可执行文件(含调试信息)
*.hex # HEX 烧录文件
*.bin # 二进制镜像文件
*.map # 内存映射文件(链接生成)
*.lst # 汇编列表文件(编译生成)# --- 构建目录 ---
MDK-ARM/ # Keil 默认构建输出目录(包含中间文件)
Objects/ # 自定义目标文件目录(如有)
Listings/ # 自定义列表文件目录(如有)# --- 调试与临时文件 ---
*.ini # 调试脚本(可能包含本地硬件配置)
*.log # 编译日志文件
*.dbg # 调试信息临时文件
*.cdb # 调试配置数据库
*.tracespec # Trace 调试配置文件# --- IDE 自动生成文件 ---
*.uvmpw # 多项目工作区文件(如有)
*.dep # 旧版本依赖文件
*.plg # 编译过程日志文件
*.jlink # J-Link 调试脚本(本地配置)# --- 其他临时文件 ---
*.~* # 编辑器临时文件(如 Keil 自动保存)
*.tmp # 临时文件
build/ # 自定义构建目录(如有)# ------------------------------
# 通用忽略规则(补充)
# ------------------------------
*.user # 用户工具链配置(如 VS Code 等)
.vscode/ # VS Code 配置目录(如使用其他编辑器)
.idea/ # JetBrains IDE 配置目录
.DS_Store # macOS 系统文件
Thumbs.db # Windows 缩略图缓存
关键忽略项说明
\*.uvoptx
和\*.uvguix.\*
- 包含用户本地配置(如调试器设置、窗口布局),不同开发者环境不同,必须忽略。
- 保留
.uvprojx
(工程主文件),需提交以维护项目结构。
- 编译输出文件(
\*.o
、\*.axf
、\*.hex
等)- 由工具链自动生成,提交会导致仓库臃肿且可能冲突。
- 构建目录(
MDK-ARM/
、Objects/
)- 默认存放中间文件,无版本控制必要。
- 调试文件(
\*.ini
、\*.cdb
)- 可能包含硬件调试器路径、本地 IP 地址等敏感或环境相关配置。
- 编辑器临时文件(
\*.~\*
、.vscode/
)- 防止编辑器缓存或配置污染仓库。
建议保留的文件
- 必须提交:
.uvprojx
(项目主文件).c
/.cpp
/.h
(源码和头文件).s
(汇编文件,如启动文件).sct
(分散加载文件,定义内存布局)- 第三方库源码(若未通过 Pack Installer 安装)
- 可选提交:
.map
(用于分析代码内存占用,但通常临时生成).lib
(自研静态库,若需共享)
扩展建议
- 使用
git-lfs
管理大型文件:
如果工程包含大型二进制文件(如固件镜像),可通过 Git LFS 管理。 - 版本化
sct
文件:
确保分散加载文件(内存分配)与代码同步更新。 - 文档化环境依赖:
在README.md
中说明需安装的 Keil Pack 组件(如STM32xx_DFP
)。
通过合理配置 .gitignore
,可保持仓库精简且跨环境兼容。