情境
事情是這樣的,想要幫自己開發核心函式庫,讓以後開發 web 的時候,可以沒煩沒腦。假設我有一個專案目錄叫做 web ,想要順便幫自己開發工具組叫做 util,放在 libs 下面。所以目錄結構長這樣:
1 | web/ |
問題來啦!看起來我 util 應該獨立一個 repository,而 web 專案應該獨立另一個。那我開發的時候,應該怎麼把這兩個 repository 兜在一塊呢?
add submodule
利用 git 的 submodule 可以解決這類的事情。若目錄與 repository 對應關係如下:
1 | web => git@github.com:ueicren/web.git |
所以我只要這樣做(此時 libs 下面沒有 util/)
1 | cd web/ |
看看發生了什麼事?
開發中
接著開發過程中,如果有修改 util 的東西,就得:1
2
3
4
5
6
7cd web/libs/util/
git add .
git commit -m "xxx"
# web 主專案也得記錄目前使用的是哪一個版本的 util
cd web/
git commit -am "util improved"
rm submodule
如果想要移除,步驟就比較複雜一點。
1 | cd web/ |