一、使用時機:
開發專案時通常會分成主專案及分專案,例如一個single page application中可能會以主頁及框架型頁面、必要載入套件作為主專案,而分專案則是開發一些共用的component元件,此時版本控管的概念便可以使用submodule的概念,底下會以github簡單的專案來實作。
二、首先在git hub創一個main專案,並建置index.html及components的folder。
cd D:\tmp
git clone https://github.com/username/main.git
@echo hello world>> index.html
git add . //讓修改檔案進入stage狀態
git commit -m "first build"
git push origin master
三、接著在回到github上創一個treeviewer專案,主要作為main專案的一小部分,並建立submodule關係。
mkdir D:\tmp\main\components
cd D:\tmp\main\components
git clone https://github.com/username/treeviewer.git
cd ..
git submodule add https://github.com/username/treeviewer.git components\treeviewer
四、此時回到主專案目錄可以看到.gitmodules內容如下,其中紀錄submodule的關係。
[submodule "components\\treeviewer"]
path = components\\treeviewer
url = https://github.com/username/treeviewer.git
五、當建立完submodule並且於其他機器下載主專案時submodule若為空,則可使用以下指令建立submodule的連結。
git submodule init
git submodule update
六、移除submodule
git rm --cached 目錄
git rm 目錄
//編輯.gitbodules並移除不需要的module
//編輯.git/config並移除不需要的module url
git add .
git commit -m "remove submodule"
git submodule sync
留言
張貼留言