[英]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.