node_modules一直被git推送,尽管它被忽略并移除

wixjitnu  于 2022-11-20  发布在  Git
关注(0)|答案(2)|浏览(367)

我正在尝试将本地git项目推送到github远程存储库中。我在一次提交中添加了node_modules,但这超出了GitHub 100.00 MB的文件大小限制。

git push -u origin main

然后

remote: error: Trace: d8e81b49d1b7e109e7b4585cf6b84d574b3888e15cb1b4f858c87c5a0147bc57
remote: error: File node_modules/node-sass/build/Release/libsass.lib is 160.60 MB; this exceeds GitHub's file size limit of 100.00 MB

然后我添加了.gitignore,但这不起作用,因为已经提交了
我尝试使用以下方法将node_modules从跟踪和提交中删除

git rm -r cached node_modules

但是当我做git push的时候,它一直在尝试推它。
我不知道如何删除node_modules

wqsoz72f

wqsoz72f1#

根据 Tirth 的 答案 下 的 讨论 :
您 可以 创建 一 个 新 的 分支 并 手动 添加 不 添加 node _ modules 的 提交 。
假设

  • 您 位于 分支 master
  • 添加 node _ modules 的 提交 具有 散 列 a1a1a1a1
  • 您 的 工作 树 是 干净 的 , 即 所有 内容 都 在 本地 提交

1.签 出 错误 之前 的 提交 并 创建 新 的 分支 ( 称为 fixed ) 。
如果 a1a1a1a1master 上 的 第 一 次 提交 , 那么 你 必须 按照 this post 创建 一 个 孤立 分支 。

git checkout a1a1a1a1^
git switch -c fixed

中 的 每 一 个
1.如果 提交 包含 节点 模块 以外 的 其他 内容 , 请 重新 创建 不 包含 node _ modules 部分 的 提交 。
1.将 a1a1a1a1 之后 的 所有 提交 添加 到 新 分支

git cherry-pick a1a1a1a1..master

格式
一旦 你 确定 所有 的 东西 都 在 那里 , 你 就 可以 删除 master , 重 命名 fixedmaster , 然后 ( 强制 ) 推送 * new * master 分支 。

34gzjxbg

34gzjxbg2#

如果您只提交节点模块,您可以

git reset HEAD~N

这里N是你想延迟的提交次数。在这个例子中,我假设你想延迟一次提交。这样做会取消提交你的节点模块和其他你提交的东西,并把它们放在你的工作树中。在这之后,只需要从工作树中删除节点模块。现在你可以再次提交你想要的修改。

相关问题