使用場景:
1.gitlab/github上已有兩個專案,分別是project-web、project-mobile
2.現在需要將兩個專案合併在乙個專案裡project
3.新專案project裡包含兩個檔案,分別是web和mobile
操作步驟:
1.gitlab/github上新建專案project,獲取project的git路徑
2.在本地git clone
3.cd project + mkdir web
4.git remote add -f 《新倉庫名》
『-f意思是在新增遠端倉庫之後,立即執行fetch』
注意:這裡可能會報錯如下」working tree has modifications. cannot add」5.執行git subtree add –prefix=《新倉庫名》 《目錄名》 《分支》 –squash報錯原因:新建的project倉庫裡是空的
解決辦法:在project遠端倉庫裡隨便新增個檔案,git add + git commit + git push
如果省略–squash會將以前專案的提交歷史記錄合併為一條,為保留原來所有的歷史記錄,建議不加–squash6.更新:git fetch 《新倉庫名》 《分支》
7.更新:git subtree pull –prefix=《目錄名》 《新倉庫名》 《分支》
8.推送:git subtree push –prefix=《目錄名》 《新倉庫名》 《分支》
9.推送至遠端倉庫:git push origin 《分支》
10.至此,project-web已經合併到project的web裡了
11.mobile重複以上步驟即可。
最終倉庫結構如下:
|-project|-web
|-mobile
Git Subtree 的介紹及使用
有專案a 專案b。有libraryc,為專案a的子專案 子目錄。專案b也想用libraryc,作為自己的子專案 子目錄。希望 同步,維護方便,更新迭代。git submodule orgit subtree拆分libraryccd 專案a git subtree split p libraryc b...
Git Subtree 的介紹及使用
有專案a 專案b。有libraryc,為專案a的子專案 子目錄。專案b也想用libraryc,作為自己的子專案 子目錄。希望 同步,維護方便,更新迭代。git submodule orgit subtree拆分libraryccd 專案a git subtree split p libraryc b...
使用git subtree管理不同專案的公用頁面
在公司寫專案,基本上很多專案都會有一些通用的頁面,比如登入頁,個人中心這種基礎頁面,每次複製會覺得很麻煩,後期修改也要同時改好幾個地方.本子著解耦的思想開始想解決方法.最先想到npm安裝包引入,不過這種事完整頁面,不是元件功能,npm不適用.後來找到了乙個git subtree,倉庫公用 git s...