我在我的GitHub账户上开发一个存储库,这是我偶然发现的一个问题。
node_modules
文件夹中在那个实例中,总git回购的大小大约是6 mb,而实际的代码(除了那个文件夹)只大约是300 KB。
现在我在寻找的是一种方法,从git的历史记录中去除该包文件夹的细节,这样如果有人克隆它,他们就不必下载6mb的历史记录,因为他们最后一次提交时得到的唯一实际文件将是300KB。
我寻找了可能的解决方案,并尝试了这两种方法
Gist似乎在运行脚本后工作,它显示它摆脱了那个文件夹,之后它显示50个不同的提交被修改。但它不让我输入那个代码。当我试图推它时,它说Branch up to date
,但显示50个提交被修改在git status
上。另外两种方法也不起作用。
现在,尽管它显示它摆脱了该文件夹的历史记录,当我在本地主机上检查该回购的大小时,它仍然在6MB左右。(我也删除了__abc0文件夹,但没有看到回购大小的变化)。
我想要澄清的是,如果有一种方法不仅摆脱提交历史(这是我认为发生的唯一一件事),而且那些文件git保持假设一个想要回滚。
让我们说一个解决方案是提出了这个,并应用于我的本地主机,但不能复制到GitHub回购,是否有可能克隆该回购,回滚到第一次提交执行技巧,并推动它(或者这意味着git仍然会有所有这些提交的历史?——又名。6 mb)。
我在这里的最终目标基本上是找到从git中删除文件夹内容的最佳方法,这样用户就不必下载6MB的东西,并且仍然可能有其他从未接触过modules文件夹的提交(这几乎是所有的)。
我该怎么做呢?