在使用 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
,可保持倉庫精簡且跨環境兼容。