顯示具有 submodule 標籤的文章。 顯示所有文章
顯示具有 submodule 標籤的文章。 顯示所有文章

2011-06-28

[git] Specify a branch 建立可指定分支的 submodule

通常要新增子模組時都是使用以下指令
git submodule add  -- "git@github.com:bluelovers/Scophp.git" "discuzx/upload/extensions/libs/scophp"
不過當想要指定分支時就傷腦筋了
網路上找到的方法大多為
先新增 submodule 之後然後進入子模組資料夾 切換分支之後
回到上層資料夾使用 git commit -a 指令來複寫

但是實在是很麻煩

在使用 tortoisegit 的 Submodule Add 時發現了以下指令
git submodule add  -b branch  -- "git@github.com:bluelovers/Scophp.git" "discuzx/upload/extensions/libs/scophp"
可以很方便很簡單的在第一次增加子模組的時候 就直接指定想要的分支

2011-06-07

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

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

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

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

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

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