2011-06-07

[git] 將 子目錄(subdirectory) 轉為 submodule 的解決方案

以下完全假設已經將 子目錄 從倉庫內分離獨立出來成為一個新的倉庫
或已經有可以取代現有子目錄的倉庫存在
由於直接刪除子目錄,然後增加子模組會產生錯誤訊息

以往我的解決方法是 先刪除子目錄,然後提交,然後增加子模組,然後再提交一次
但是這樣就變成版本紀錄上很不好看

今天意外的發現有更簡便的方法可以在一次的提交內完成這些動作

假設子目錄名為 subdirectory
#在倉庫內移除子目錄
git rm -r subdirectory

#然後新增子模組
git submodule add  -- "git@github.com:bluelovers/ucenter.git"  "subdirectory"
接下來提交就可以完美解決了