如何实现嵌套独立Git仓库X与Y的同步备份需求?
嵌套仓库内容同步与备份方案
一、配置Repo X,使其正确追踪B文件夹内容(排除B/.git)
Git默认会将包含.git目录的文件夹识别为嵌套仓库,不会自动追踪其内容,需手动指定追踪规则:
- 在Repo X的根目录执行命令,添加B文件夹下所有内容但排除内部的
.git目录:git add B/:(exclude).git - 提交更改到Repo X:
git commit -m "追踪B文件夹内容(排除内部.git)" - 推送到RemoteX:
git push RemoteX <你的分支名>
若之前误将B/.git纳入Repo X追踪,先执行以下操作清理:
git rm --cached B/.git
备注:.gitignore仅对未被追踪的文件生效,所以之前添加B/.git到.gitignore无法解决问题
二、定期备份Repo Y到RemoteY的操作流程
进入B文件夹,执行常规Git备份操作即可:
- 切换到Repo Y目录:
cd B - 暂存所有更改:
git add . - 创建备份快照提交:
git commit -m "备份快照:YYYY-MM-DD" # 替换为实际日期 - 推送到RemoteY:
git push RemoteY <你的分支名> # 通常为main或master
关键说明
- 此方案无需使用子模块/子树,完全满足RemoteX包含B文件夹内容、Repo Y独立备份的需求;
- Repo X和Repo Y的操作完全独立,日常在Repo X的开发不受Repo Y备份操作影响。
内容的提问来源于stack exchange,提问作者Pyrojoke
相关产品推荐
相关产品推荐

