Git跟踪添加文件异常:目标文件被加入其他仓库如何处理
问题原因
- 你的
api/environment目录本身位于上层/reminder-app仓库的工作目录范围内,Git默认会优先将目录内的文件归属到最近的上层已初始化仓库,你在子目录单独初始化的Git仓库如果没有被上层仓库做排除处理,不会被Git优先识别。 - 如果你执行
git add操作时的工作路径为/reminder-app而非api/environment,也会默认命中上层仓库的配置,将文件加入上层仓库的暂存区。
修复步骤
- 先定位到
/reminder-app仓库的根目录,打开根目录下的.gitignore文件,添加一行api/environment/,将整个后端目录从前端仓库的追踪规则中排除,避免上层仓库继续捕获该路径下的所有文件改动。 - 在
/reminder-app目录下执行以下命令,移除之前被上层仓库误追踪的后端目录文件缓存:git rm -r --cached api/environment - 提交上层仓库的改动:
git add .gitignore git commit -m "chore: 排除独立维护的后端仓库目录"
- 切换到
api/environment目录,执行git rev-parse --show-toplevel验证仓库归属,正常返回结果应为api/environment的绝对路径。后续在该目录下执行git add、git commit操作,所有文件改动都会被当前的后端仓库捕获,不会再同步到上层的/reminder-app仓库。
补充说明
如果之后需要关联前后端两个仓库的版本,可以将api/environment配置为/reminder-app的Git子模块,不需要关联的话按上述步骤配置忽略即可,不影响后端仓库单独部署到Heroku的流程。
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

