git subtree詳解及使用場景

2021-07-26 22:50:48 字數 1025 閱讀 8999

使用場景:

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」

報錯原因:新建的project倉庫裡是空的

解決辦法:在project遠端倉庫裡隨便新增個檔案,git add + git commit + git push

5.執行git subtree add –prefix=《新倉庫名》 《目錄名》 《分支》 –squash

如果省略–squash會將以前專案的提交歷史記錄合併為一條,為保留原來所有的歷史記錄,建議不加–squash

6.更新: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...