Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Git repo中删除目录_Git_Github_Version Control - Fatal编程技术网

从Git repo中删除目录

从Git repo中删除目录,git,github,version-control,Git,Github,Version Control,我有一个本地Git回购,我一直在努力。该项目有一个master和dev分支。我的更改目前都在dev分支中 问题是,我不小心将两个包含高分辨率图像和.mov文件的文件夹从我的iPad放到了我的repo中的一个文件夹中,并在没有注意到的情况下提交了 我最初(通过文件系统)删除了文件夹,只是提交了删除,但我遇到的问题是我无法推送到远程repo,因为我用git推送了1.7gb的数据,由于一些电影的文件大小,这给了我一个致命的挂起错误 我尝试增加git配置缓冲区的大小,以允许推送更改,但没有成功 在上搜索

我有一个本地Git回购,我一直在努力。该项目有一个master和dev分支。我的更改目前都在dev分支中

问题是,我不小心将两个包含高分辨率图像和.mov文件的文件夹从我的iPad放到了我的repo中的一个文件夹中,并在没有注意到的情况下提交了

我最初(通过文件系统)删除了文件夹,只是提交了删除,但我遇到的问题是我无法推送到远程repo,因为我用git推送了1.7gb的数据,由于一些电影的文件大小,这给了我一个致命的挂起错误

我尝试增加git配置缓冲区的大小,以允许推送更改,但没有成功

在上搜索了一些答案后,我恢复了提交以将文件放回,并尝试通过git使用以下“git rm-r folderpath”

然而,当回购协议的实际容量仅为13Mb左右时,回购协议似乎仍在努力推动所有1.7gb的容量

所以我的问题是,我如何将其缩小到实际规模,以便将其推到远程回购


谢谢

我假设您不需要在错误提交后保留提交。如果这个假设是错误的,那么解决方案就更复杂了

首先,您需要在错误提交之前立即将开发分支移动到提交。我们可以按照中所述,在获得提交的哈希值之后,立即执行错误的提交

git branch -f branch-name new-tip-commit
接下来,您应该确保没有其他分支指向包含错误提交的提交历史记录,方法是使用相同的命令移动所有其他分支,直到它们的历史记录中没有错误提交


然后,您可以使用命令调用
git
垃圾收集器。

您需要在添加大文件之前将开发分支重置到某个点(或者,如果您已经完成了以后要保留的工作,则在该点上重新基基-交互,并从重新基列表中删除错误的提交(以及任何恢复)

一旦无法再访问错误提交,您可以执行以下操作
git--prune=gc

删除存储库中的坏对象。

谢谢您的回答,很抱歉响应太晚。我尝试了垃圾收集,但这给了我一些错误,这让我更头疼

最后,由于我不得不把它推到最后期限,我只是删除了我的本地回购协议,克隆下来并复制了我的更改,然后推了回去。虽然不理想,但完成了任务

我将尝试使用git分支选项,以便在遇到类似问题时知道如何修复git中的问题


干杯

如果旧的历史仍然可以追溯,我不认为git gc会删除它。@KeithThompson,我可能误解了他当前回购的状态。我认为他已经完全重写了它(即,在提交之前回滚到提交,并删除了指向未来提交的任何分支)。他试图用
git rm
删除它。这并没有将其从历史中抹去。他需要改变历史,这才行得通。