色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 如何使用 git 管理 MDK 工程?

          如何使用 git 管理 MDK 工程?

          發(fā)布人:魚鷹談單片機 時間:2021-10-21 來源:工程師 發(fā)布文章

          很多初學(xué)者都不會使用 git 管理工程,一來不熟悉這個工具,二來不知道使用 git 有什么好處,增加學(xué)習(xí)成本,當(dāng)初魚鷹在大學(xué)的時候就有了解過 git 這個分布式管理工具,但真正用它管理工程還是在工作一年之后才開始的。

          那個時候不知道 git 到底有多香,所以也不會想要真正使用它,最多就是從 github 上下載一些開源項目學(xué)習(xí)而已。直到跳槽的那個公司使用 git 去管理 STM32 工程,然后到現(xiàn)在差不多使用了兩年的時間,才知道到 git 到底有多香了。

          所以即使工作上沒有要求使用 git 管理工程,也建議大家自行使用 git 去管理自己的項目。因為如果只是自己使用的話,是不需要搭建 gitlab 之類的服務(wù)器,直接安裝好客戶端在本地管理即可,也不怕上傳公司項目到 github、gitee 服務(wù)器上而導(dǎo)致項目泄密的問題。

          所以,強烈建議大家使用 git ,除了今天這篇筆記,魚鷹接下來還會介紹一些非常常用的命令來幫助大家快速入手 git。

          閑話少說,我們先看看 git 的幾個優(yōu)點,讓各位道友產(chǎn)生些許興趣。

          1、可以查看每一次提交歷史。

          這些提交記錄其實是你自己寫的,每一次修改后,為了記錄這次修改,自己寫一點類似注釋的東西,告訴 git 這次做了什么修改,方便后面出現(xiàn)問題追溯。

          2、可以對比修改 

          可以對比每次修改的地方,這樣你可以知道為什么當(dāng)前代碼出現(xiàn)了問題,而以前代碼沒有問題。

          3、可以對比當(dāng)前修改 

          當(dāng)你修改了當(dāng)前的代碼時,可以告訴你目前做了哪些修改,這樣你可以確定是否需要將這些修改保存提交。

          4、無縫銜接 VSCODE 

          可以使用 VSCode 輕松對比查看修改。

          1.png

          這些優(yōu)點干巴巴的這樣寫還是比較枯燥的,所以魚鷹會再下一篇筆記中結(jié)合命令和實際項目情況詳細(xì)介紹。這次就不多說了。

          直接進入本篇筆記的主題:如何使用 git 管理 MDK 工程?

          MDK 工程有兩個很關(guān)鍵的文件,即后綴 .uvoptx 、.uvprojx。所以你的倉庫中必定需要使用 add 命令添加這兩個文件。

          2.png

          其次就是你的 *.h *.c 文件,這些也必須添加(這不是廢話嗎,不然倉庫放啥)。當(dāng)然如果這些源文件使用了文件夾包含,也會把這些文件夾添加進去的(新建的文件夾只會在 git status 時顯示文件夾,不顯示文件夾內(nèi)的具體文件,而如果是空文件夾,文件夾也不會顯示,所以你無法添加一個空文件夾。文件夾添加只是順帶的)。

          工程里面的其他文件都是不需要的,都是可以由這些文件自動生成,可以不被 git 所追蹤(管理)。這樣你上傳到服務(wù)器的空間將大大減小。

          比如,Objects 里面的文件,這些都是編譯時自動生成的,不必占用空間。

          3.png

          還有 listings 里面的文件也不需要。

          4.png

          當(dāng)然,如果說你的分散加載文件 *.sct (Objects 文件夾下)比較特殊,不想使用上面工程文件生成的,那么你也要添加進倉庫里面管理,這樣別人下載你的工程后才能根據(jù)這個文件正確編譯(比如自檢代碼時就要特制 sct 文件)。

          使用 jlink 下載時,會生成兩個文件:

          5.png

          這兩個文件沒啥用,就不用添加了,也可以自己生成。如果你有批處理文件,比如刪除中間文件的批處理,那么也可以添加進倉庫。

          6.png

          如果你使用了 MDK 的 *.ini 文件,那么這個也需要。這個可不是自動生成的。比如 RAM 運行時用的配置文件。

          7.png

          你的工程可能使用 readme.txt ,那么這個也需要添加??傊粋€原則是,只保留必須的,可以自動生成的非特殊文件都可以不添加進倉庫占用空間。

          那么如何保證 git 忽略那些不需要的文件呢?

          其實你只要 add 你需要的文件就可以了,但這樣一來,git 會一直提示你有哪些文件并沒有添加到倉庫中,問你是否需要添加進去,這樣就很煩,所以就有一個 .gitignore 文件用來忽略這些不希望跟蹤的文件。

          8.png

          特別注意的是,這個文件很特殊,它的后綴就是 .gitignore ,不是你認(rèn)為的 txt 之類的后綴,而且沒有文件名。所以如果說你新建了這個文件,又添加了忽略文件,但是 git status 還是顯示了這些文件,那么就要好好檢查你這個文件名是否正確了(只要有這個文件,立即生效)。當(dāng)然你也要把它 add 進倉庫,不然別人下載后就沒有這個文件了,也就無法忽略那些文件。

          那么這個文件可以添加什么內(nèi)容呢?如下:

          ##########################################
          #git add .
          #git commit -m 'update .gitignore'
          ##########################################
          !debug.ini  # 該文件不忽略
          *.ini
          JLinkLog.txt
          Listings
          DebugConfig
          Objects
          .vscode
          *.uvguix.*
          *.si4project
          SI
          *.TMP
          *.hex
          *.map
          *.lnp
          *.htm
          *.sct
          ExtDll.iex

          這里加一個 ! 代表這個 debug.ini 文件不忽略,而后面的 .ini 表示所有這類后綴文件都會被忽略。也就是說,.ini 文件里面只有 debug.ini 不能忽略,其它都忽略,比如前面的 RAM.ini。

          Objects 代表這個文件夾內(nèi)所有文件都忽略。

          后面都是類似的。

          還有要注意的是,如果你忽略的文件前沒有加路徑,那么它將忽略本目錄和子目錄下所有的同后綴名文件。而一旦加了路徑,比如 USER/*.txt(注意必須是斜桿),那么只會忽略這個目錄 USER 下的同后綴文件(不忽略子文件夾下的)。

          以上就是魚鷹想分享的 MDK 管理內(nèi)容,建議大家嘗試 git 管理項目,別再用復(fù)制文件夾這種效率低下的方式管理了。而當(dāng)你需要維護多個定制化的客戶項目時(大部分功能相同,只有少部分有差異的項目),你就會發(fā)現(xiàn) git 是真的香。

          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

          接地電阻相關(guān)文章:接地電阻測試方法


          加速度計相關(guān)文章:加速度計原理


          關(guān)鍵詞: 單片機

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉