性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

嵌入式開發(fā)必備技能 | Git子模塊

今天我們來分享Git子模塊(Git Submodule)的小知識。

一、為啥要用 Git子模塊 

嵌入式開發(fā)中,我們經(jīng)常遇到這樣的場景:

主工程(比如 STM32CubeMX 生成的代碼)需要集成 FreeRTOS、lwIP 等第三方庫或是公司里自己開發(fā)的一些基礎(chǔ)組件或者公共模塊。

這些庫可能同時被多個項目使用,版本管理混亂到讓人頭禿!不可能每修改一個公共模塊都到各個項目主工程都修改提交一遍。

這時候 Git Submodule 就像神器一樣出現(xiàn)了:

  • 子模塊獨立維護,互不干擾
  • 精準控制每個庫的版本
  • 倉庫體積更?。ú挥脧椭普迟N代碼)

二、基礎(chǔ)操作實戰(zhàn) 

1. 添加子模塊

# 主項目中添加FreeRTOSgit submodule add https://github.com/FreeRTOS/FreeRTOS.git components/FreeRTOS

操作后會自動生成.gitmodules配置文件,子模塊默認指向最新版:

2. 克隆帶子模塊的項目

# 一次性克隆主項目+所有子模塊git clone --recurse-submodules https://github.com/your/project.git# 已有項目更新子模塊git submodule update --init --recursive

3. 切換子模塊版本

cd components/FreeRTOSgit checkout V10.6.0  # 切換到指定版本

三、開發(fā)流程實戰(zhàn) 

場景 1:修改子模塊代碼

  1. 在子模塊目錄改代碼

  1. 提交子模塊修改:
cd components/FreeRTOSgit add .git commit -m "增加test.txt文件"git push

  1. 主項目更新子模塊指針:
cd ..git add components/FreeRTOSgit commit -m "修改FreeRTOS子模塊:增加test.txt文件"

這時候主倉已經(jīng)記錄了子模塊的commit,已經(jīng)產(chǎn)生了關(guān)聯(lián):

如果拉取遠端代碼,發(fā)現(xiàn)主倉子倉不對齊,子倉已經(jīng)領(lǐng)先提交,主倉還未合入,為了不影響到自己本地開發(fā),可以:

git submodule update --init --recursive

強制對齊到主倉記錄的子倉的提交。

切主倉分支之后,也要執(zhí)行一遍git submodule update --init --recursive,對齊到你主倉記錄的主倉。

場景 2:子模塊嵌套依賴

# 添加lwIP作為FreeRTOS的子模塊git submodule add https://github.com/lwIP/lwIP.git components/FreeRTOS/lwIP# 遞歸更新所有子模塊git submodule update --init --recursive

以上就是本次的分享,如果覺得文章有用,麻煩幫忙轉(zhuǎn)發(fā)!謝謝

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關(guān)注 32
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧