2016年1月29日 星期五

Submodule



一、使用時機:
     開發專案時通常會分成主專案及分專案,例如一個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

沒有留言:

張貼留言