[英]How do I pull just one folder from another Git repository?
我正在從一些現有的存儲庫創建一個 monorepo,並且我想保留提交歷史記錄。
這里的答案告訴我們git subtree
命令對此很有用,如果我們想將舊的 git 存儲庫按原樣導入新結構,它可以正常工作。
但是,我有一個我很重要的項目,如下所示:
/
server/
index.js
package.json
src/
package.json
在這里,我只想導入server
文件夾,並在上面保留提交歷史記錄。
我可以只導入整個文件夾,刪除我不需要的所有內容,然后將server
中的所有內容上移一個文件夾,但我擔心會破壞提交歷史記錄。
有沒有辦法只導入一個子目錄?
正如 Serge 在評論中所建議的那樣 - git filter-branch
可以用來實現這一點。
這是我做的方式,也許有更簡單的方法。
創建一個臨時遠程倉庫“temp”。
在現有的回購中:
git filter-branch --subdirectory-filter server -- --all
git remote add temp git@temporaryrepo....
git push temp master
這將創建一個以server
目錄中的所有內容為根的存儲庫。
git subtree add -P packages/server /path/to/temp.git master
這會將臨時根目錄導入packages/server
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.