我正在尝试将本地 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
根据Tirth的回答下的讨论:
您可以创建一个新分支并手动添加不添加node_modules的提交。
假设
master
a1a1a1a1
。fixed
)。a1a1a1a1
是 master
上的第一个提交,则您必须按照 this post 创建一个孤立分支。git checkout a1a1a1a1^
git switch -c fixed
如果提交包含节点模块以外的其他内容,请重新创建不包含 node_modules 部分的提交。
将
a1a1a1a1
之后的所有提交添加到新分支
git cherry-pick a1a1a1a1..master
一旦确定一切都已就绪,您可以删除 master,将
fixed
重命名为 master
,然后(强制)推送 new master 分支。
如果您刚刚提交了节点模块,您可以这样做
git reset HEAD~N
其中 N 是您想要落后的提交数量。在这种情况下,我假设您想要落后一次提交。这样做将取消提交您的节点模块和您提交的其他内容,并将它们放入您的工作树中。之后,只需从工作树中删除节点取消阶段节点模块。现在您可以再次提交您想要的更改。
我将 .gitignore 文件中的
/node_modules
替换为 node_modules/
并且成功了。