社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

尽管“git reset--hard head~1”,但.git目录中仍存在不需要的/未跟踪的文件。

tardis • 6 年前 • 911 次点击  

我不小心将一个包含一些大文件的tmp目录添加到了我的(唯一的)本地Git存储库中(现在,.git目录的大小太大,为134 MB)。

我查看了如何“删除”最后一次提交,并找到了命令 git reset --hard HEAD~1 做到了。如果我跑 git log 看看Gitk,最后一次提交确实已经不复存在了。但是如果我再检查一下.git目录的大小,它仍然有134 MB的大小。如果我在.git/objects/i中搜索大文件,我会找到一个与视频文件大小完全相同的文件。因此,似乎已删除提交的文件仍然存在。我想在.git目录中删除这个文件。我已经试过了 git clean -n 但没有显示要删除的内容。

所以我的问题是如何从“未使用”文件中删除/清理/清除.git目录。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30510
 
911 次点击  
文章 [ 1 ]  |  最新文章 6 年前
torek
Reply   •   1 楼
torek    6 年前

如果你真的想要它立刻消失,它会自己消失。 最后 ,这要容易得多,你必须摆脱那些 eftshift0 mentions in a comment . 可能正好有两个:一个用于前一个值 HEAD ,并为分支的前一个值 本身的名字。在某些情况下,可能会有更多;很少,可能会有更少。

要做到这一点,使用 git reflog expire --expire-unreachable=now --all . 请注意,这将删除 全部的 无法从中重新记录条目 全部的 参考加 . 定义 不可达 这里和里面的一样 Think Like (a) Git :在这种特殊情况下,“可访问”是指“可从引用本身的当前值访问”。此特定更改无法撤消,因此在执行此操作之前,您应该非常确定不希望任何放弃的提交返回。

一旦你做到了,就跑吧 git gc --prune=now 删除未引用的提交及其未引用的文件。