2019/12/02 初版撰寫
Git Submodule 是一個很好的多項目使用共同類庫的工具,他允許類庫項目做為repository,子項目做為一個單獨的git項目存在父項目中,子項目可以有自己的獨立的commit,push ,pull。而父項目以Submodule的形式包含子項目,父項目可以指定子項目header,父項目中會的提交信息包含Submodule的信息,再clone父項目的時候可以把Submodule初始化。
使用SourceTree可以輕鬆建立Submodule。
要建立Submodule前要先準備複數個git專案,以恐龍公園的git為例:
準備好後再clone好的專案內,左側右鍵點選Add Submodule,會出現選項填寫,
Source Path: 就寫要當作Sumodule的git
Local Relative Path: 指定一個專案內的路徑,將Git安裝在內,這邊是放在Unity專案/Asset/Resource內
建立完成之後,專案的右邊的面板就會顯示Submodules的資訊,顯示的資訊會依照你所設的路徑顯示,點選最後的資較夾就可以開啟,submodules的git頁面。
他的git頁面就跟其他的git一模一樣,操作方法和衝突排解也一樣,如果不知道怎麼操作的話可以參考基本操作
唯一的不同是,你再Submodule內上傳或Rever的內容,在父項目會生成一個對應資訊檔,這個資訊檔的內容是對應Submodule的Commit,這個就是表示父項目正在使用Submodule的哪個Commit。
父項目必須把這個資訊檔上傳到git,才能確保其他人使用Submoudule的commit是相對應的。