這篇是有人詢問在跑 CI 的時候某些 Git Repository 很肥,會導致 CI 在 Clone 浪費很多的時間跟空間的處理方式。
Git Repository 很肥通常有兩種情況:
- Commit 不適合的檔案到 Repository,例如:大容量或大量圖檔、Log、多餘的備份檔 …etc
- Repository 年代久遠,Git 倉庫本身就很肥。
第一種情況,除了重新檢視你的 Repository 有沒有廢 code 或檔案,還可以參考以下方式:
- Log 應該是由 instance 產生後再集中到 Log Server。
- 可以被 Commit 到 GIt Repository 的圖片通常是小 size 且該網站必要呈現的檔案,例如:Logo、icon。
- Data 類型的圖片由 Storage 統一存放。
- Package 在 CI 的時候再 build,不存放在 Git。
第二種情況,參考 Travis CI 的處理方式,用 –depth 只取 history 最後 50 筆:
$ git clone --depth=50 --branch=master https://github.com/shazi7804/example
Ref:Copy a git repo without history