You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跟随《Rebuilding Rails》操作时无法将rulers文件夹推送至GitHub

问题原因

  1. 你无法添加rulers目录的核心原因是该目录被Git识别为子模块,从你提交的状态信息里(commit or discard the untracked or modified content in submodules)的提示可以确认,普通git add命令无法直接抓取子模块内的未提交内容;此外你之前执行的git add ruler拼写错误,少了末尾的s,就算是普通目录也无法正常添加。
  2. 推送被拒是因为远程的main分支存在你本地没有的提交,需要先合并远程变更再推送。
  3. 你提供的.gitignore规则中没有排除rulers目录,排除规则不是本次问题的诱因。

解决步骤

情况1:你不需要将rulers作为独立的子模块维护(跟随教程学习的场景推荐选这个)

这种情况一般是你之前在rulers目录下误执行了git init生成了Git仓库配置,导致外层仓库把它识别为子模块,直接删除rulers内的Git配置即可:

# 删除rulers目录下的.git隐藏文件夹
rm -rf rulers/.git
# 回到项目根目录重新添加rulers
cd ../
git add rulers/
git commit -m "添加rulers目录所有内容"

情况2:你确实需要将rulers作为独立子模块维护

先提交子模块内的修改,再更新外层仓库的子模块引用:

# 进入rulers子模块目录提交内部修改
cd rulers
git add .
git commit -m "提交rulers内的修改"
# 如果子模块有对应远程仓库,先推送子模块的修改
git push origin main

# 回到外层项目根目录更新子模块引用
cd ../
git add rulers
git commit -m "更新rulers子模块版本"

解决推送被拒问题

处理完rulers目录的提交后,先拉取远程最新变更合并到本地,再推送即可:

# 拉取远程main分支的变更并合并到本地
git pull origin main
# 如遇代码冲突,手动解决冲突后执行git add、git commit提交冲突修复
# 最后推送所有本地提交
git push origin main

内容的提问来源于stack exchange,提问作者Zack Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:24:02