我正在使用我的GitHub帐户上的存储库,这是我偶然发现的一个问题.
node_modules文件夹中在那个例子中,总git repo的大小约为6MB,其中实际代码(除了该文件夹之外的所有代码)只有大约300 KB.
现在我正在寻找的是从git的历史中删除该包文件夹的细节的一种方法,所以如果有人克隆它,他们不必下载6mb的历史记录,他们将获得唯一的实际文件截至上次提交时将为300KB.
我查找了可能的解决方案并尝试了这两种方法
Gist似乎在运行脚本之后起作用,它表明它摆脱了该文件夹,之后它显示了50个不同的提交被修改.但它没有让我推动那些代码.当我试图推它时,它说,Branch up to date但显示50个提交被修改了一个git status.其他两种方法也没有帮助.
现在即使它显示它摆脱了该文件夹的历史记录,当我在我的localhost上检查该repo的大小时,它仍然是大约6MB.(我也删除了refs/original文件夹,但没有看到repo大小的变化).
我要澄清的是,如果有一种方法可以摆脱提交历史(这是我认为发生的唯一事情),而且那些文件git保持假设一个人想要回滚.
让我们说一个解决方案是为此而呈现并应用于我的localhost但不能复制到该GitHub仓库,是否有可能克隆该repo,回滚到第一个提交执行技巧并推送它(或者这是否意味着git将仍然有所有这些提交的历史? - 又名.6MB).
我的最终目标是基本上找到从git中删除文件夹内容的最佳方法,这样用户就不必下载6MB的东西,仍然可能有其他提交从未触及过模块文件夹(那很漂亮)他们中的所有人都在git的历史中.
我怎样才能做到这一点?
我正在尝试部署应用程序,但收到错误。以下研究指出了我这里:
warning in tree f148931b374ad1aa9748b8f91bd48fcb44fb73b0: nullSha1: contains entries pointing to null sha1
Checking object directories: 100% (256/256), done.
broken link from tree f148931b374ad1aa9748b8f91bd48fcb44fb73b0
to blob 0000000000000000000000000000000000000000
missing blob 0000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)
尝试了这里的解决方案,但命令在终端上没有执行任何操作,它们只是坐在那里。
有人可以帮助我吗?
概述:
我无法成功将我们的仓库中的更改提取到生产服务器.
在我的repo上运行"git fsck"返回了同样错误的5个实例:
warning in tree [hash]: contains entries pointing to a null sha1
Run Code Online (Sandbox Code Playgroud)
我们的所有版本的repo都存在错误,包括bitbucket上托管的版本.
我和我的同事在我们非常希望保留的本地版本的回购中都有未经删除和未提交的更改.
我已经尝试了google,stackoverflow和man page,但是我找不到一个好的指南来解释发生了什么或如何解决问题.
在谈到GIT时,我的同事和我是相对的新手.我们已经掌握了基础知识,但我们还没有在低级命令中花费任何时间.
我很感激任何和所有帮助恢复我的回购的完整性.
详细说明:
当我尝试将远程分支拉到生产服务器时,我的问题就出现了.它应该是对工作目录的简单更新,但我得到一些模糊的错误,我不记得,发现我的工作目录已损坏.
合并失败后,Git状态报告了大量未跟踪和修改的文件.我无法弄清楚如何使用git命令解决问题所以我手动操作文件系统以删除文件(但我没有触及.git目录中的任何内容)并让我的工作目录回到我的状态生产服务器将无误地为我的网站服务.
在我的repo上运行"git fsck"返回了同样错误的5个实例:
warning in tree [hash]: contains entries pointing to a null sha1
Run Code Online (Sandbox Code Playgroud)
我跑了git fsck:
我试过的一切都显示出相同的警告.所以无论问题是什么,它都在我们的回购的所有版本中.
调用"git ls-tree [树形哈希报告错误]"显示正常的目录打印输出以及坏树哈希:
160000 commit 0000000000000000000000000000000000000000 [name of repo]
Run Code Online (Sandbox Code Playgroud)
我找到的最接近解决方案的是这个stackoverflow帖子:如何在Git树中删除带有null sha1的条目.但是,我无法真正理解这些步骤,切割和粘贴命令无法解决我的问题.
我的问题: