要使用 git subtree
添加一個新的子倉庫,可以按照以下步驟操作:
1. 添加子倉庫
使用 git subtree add
命令將子倉庫的內容添加到主倉庫的指定目錄中。命令格式如下:
git subtree add --prefix=<子目錄路徑> <子倉庫地址> <子倉庫分支>
--prefix=<子目錄路徑>
:指定子倉庫在主倉庫中的目錄路徑。<子倉庫地址>
:子倉庫的 Git 倉庫 URL。<子倉庫分支>
:子倉庫中要添加的分支名稱。
示例
假設你希望將 https://github.com/example/subproject.git
的 main
分支作為子倉庫添加到主倉庫的 subproject
目錄中,可以執行以下命令:
git subtree add --prefix=subproject https://github.com/example/subproject.git main
2. 提交更改
添加子倉庫后,Git 會自動創建一個提交,將子倉庫的內容合并到主倉庫中。你可以通過以下命令查看并提交這些更改:
git status
git commit -m "Add subproject as a subtree"
git push
3. 更新子倉庫
如果子倉庫有新的更改,可以使用以下命令將這些更改拉取到主倉庫中:
git subtree pull --prefix=<子目錄路徑> <子倉庫地址> <子倉庫分支>
例如:
git subtree pull --prefix=subproject https://github.com/example/subproject.git main
這會將子倉庫的最新更改合并到主倉庫中。
4. 推送子倉庫的更改
如果你在主倉庫的子目錄中進行了更改,并希望將這些更改推送到子倉庫中,可以使用以下命令:
git subtree push --prefix=<子目錄路徑> <子倉庫地址> <子倉庫分支>
例如:
git subtree push --prefix=subproject https://github.com/example/subproject.git main
這會將主倉庫中子目錄的更改推送到子倉庫的指定分支。
注意事項
- 如果希望在添加子倉庫時簡化提交歷史,可以使用
--squash
選項。這會將子倉庫的提交歷史壓縮為一個單一的提交。 - 確保子倉庫的分支名稱和路徑正確無誤,否則可能會導致命令失敗。
通過以上步驟,你可以輕松地將一個新的子倉庫添加到主倉庫中,并在需要時同步更改。