Skip to main content

One post tagged with "git submodule"

View All Tags

· 8 min read
zaxro

what is git submodule

將一個 Git 存儲庫作為另一個存儲庫的子模組進行管理。也就是說可以在一個 git repo 底下,同時管理多個 git repo,可以在主代碼庫中輕鬆地管理和更新子模組. 詳細的介紹可以看- Git - submodule 使用教學

when to use

我在工作上遇到的情況是有一個日常維護的主 repo,其中有一隻管理域名的檔案需要程式定期去 review 看域名跟憑證多久到期.目前方法是透過建立一個 git repo 內含有檢查域名的程式,建立 build image 的 CI,每當程市有改動會把程式打包做成 image.然後在主 repo 那邊則會拉取該 image 去做域名的檢查.過程如下:

  1. 子 repo 更新程式並 CI 建立 image
  2. 使用步驟 1 建立的新 image,於主 repo 透過 CI 定時使用最新的 image 執行程式檢查.

這個方式沒啥問題,只是對於一些新人或初次看到這個架構的人而言,會覺得串這兩層很複雜.

所以後來我在自己另外寫檢查證書到期的程式時,就想辦法去改善這個可讀性的問題,因此發現 git submodule 是一個不錯的處理方式. 過程想法如下

  1. 透過 CI,在檢測程式的 repo,透過 git submodule 抓取主 repo 的域名檔案,並用程式檢查.