如何使用Git Subtree仅克隆目标仓库的指定文件夹?
实现Git Subtree只同步指定仓库的特定文件夹到目标目录
方法一:通过临时分支过滤内容(支持后续用subtree同步更新)
- 添加远程仓库并拉取内容
git remote add -f books-upstream <待添加仓库的Git URL> - 创建临时分支,仅拉取远程仓库的
booksrepo文件夹git checkout -b temp-books-branch books-upstream/master -- booksrepo - 调整临时分支的目录结构,将
booksrepo下的内容移到根目录git mv booksrepo/* . git rm -r booksrepo git commit -m "提取booksrepo内容到分支根目录" - 将临时分支作为subtree添加到主仓库的
books目录git subtree add --prefix=books temp-books-branch --squash - 清理临时分支(可选)
git branch -D temp-books-branch
后续需要同步更新时,重复上述步骤2-4即可,或者拉取远程分支后更新临时分支再合并。
方法二:用Git Archive直接导出导入(操作更简洁,适合单次或简单更新)
- 从远程仓库导出
booksrepo文件夹内容到本地books目录(自动去掉外层booksrepo目录)git archive --remote=<待添加仓库的Git URL> master booksrepo | tar -x --strip-components=1 -C books - 将导入的文件提交到主仓库
git add books git commit -m "从远程仓库添加books目录内容"
后续同步更新时,重复执行上述两个步骤即可。
内容的提问来源于stack exchange,提问作者omega
相关产品推荐
相关产品推荐

