如何对Void上游Git仓库稀疏拉取,对个人仓库完整推拉?
解决方案:分分支管理官方同步与个人自定义内容
核心思路
用两个分支分别处理不同需求:
- 一个分支(比如
upstream)专门同步官方仓库,启用稀疏检出仅拉取构建脚本目录 - 另一个孤儿分支(比如
personal)关闭稀疏检出,完整包含你的自定义srcpkgs,负责推送到个人远程
步骤1:配置官方同步分支
- 创建并切换到用于同步官方的分支:
git checkout -b upstream origin/main - 启用稀疏检出并设置仅同步指定目录:
git sparse-checkout init --cone git sparse-checkout set xbps-src common etc - 拉取官方最新内容:
git pull origin main
步骤2:配置个人自定义分支
- 切换到已创建的孤儿分支:
若还未创建,重新初始化孤儿分支并推送:git checkout personalgit checkout --orphan personal git rm -rf . git add xbps-src common etc srcpkgs git commit -m "Initial personal repo setup" git push tilde personal - 在个人分支关闭稀疏检出,确保所有文件可被追踪:
git sparse-checkout disable - 新增自定义包模板后,直接提交推送:
git add srcpkgs/your-custom-package git commit -m "Add custom package: your-custom-package" git push tilde personal
步骤3:同步官方更新到个人分支
当官方构建脚本有更新时,同步到个人分支:
- 切换到
upstream分支拉取最新内容:git checkout upstream git pull origin main - 切换回
personal分支,合并官方分支的构建脚本目录:git checkout personal # 仅合并指定目录,用官方内容覆盖本地对应文件 git merge upstream --strategy-option theirs -- xbps-src common etc - 提交合并结果并推送到个人远程:
git commit -m "Sync official build scripts" git push tilde personal
内容的提问来源于stack exchange,提问作者sigsegv
相关产品推荐
相关产品推荐

