我有一个300 MB的git repo.我目前检出的文件重2 MB,git repo重298 MB.这基本上是一个仅限代码的回购,重量不应超过几MB.
最有可能的是,有人在某个时候偶然犯了一些重文件(视频,巨大的图像等),然后将它们删除......但不是从git中删除,所以我们有无用大文件的历史.如何在git历史记录中追踪大文件?有400多个提交,所以一个接一个将是耗时的.
注意:我的问题不是关于如何删除文件,而是如何在第一时间找到它.
我试图寻找一个关于减少回购规模的好教程,但没有找到.我如何减少我的repo大小...它大约10 MB,但事情是Heroku只允许50 MB,我不在附近完成开发我的应用程序.
我已经将通常的嫌疑人(日志,供应商,文档等)添加到.gitignore.虽然我最近只添加了.gitignore.
有什么建议?
它时不时地发生.某些库依赖于另一个库,并且用户打开属于错误仓库的问题.我可以将问题转移到其他回购中吗?
你可以说这个问题可以看作是两个回购问题,因为一个人依赖于另一个,只要一个人不能正常工作,两者都不会.但我宁愿谈论它所属的回购中的问题的解决方案.
我不小心添加了一个图像文件夹并提交.然后,我又做了一次提交.然后我git rm -f ./images再次使用并提交了这些文件.
现在,我在那个分支(master)中做了很多提交.在我的HEAD中,我没有该./static/images文件夹.
因此,我的回购规模增加了很多.如何完全删除这些斑点?我想从我的远程GitHub仓库中删除它.
我有一个小的git repo设置,唯一真正的目的是能够在几台机器(工作,家庭,笔记本电脑)上进行本地开发.因此,我有一个分支,一旦我离开计算机,我提交/推动,拉一下我坐下 工作得很好,到现在为止.现在当我拉上我的"实时测试"机器时,我得到以下信息:
remote: Counting objects: 38, done.
remote: Compressiremote: ng objects: 100% (20/20), done.
remote: Total 20 (delta 17), reused 0 (delta 0)
error: unable to create temporary sha1 filename .git/objects/ed: File exists
fatal: failed to write object
fatal: unpack-objects failed
Run Code Online (Sandbox Code Playgroud)
在网上搜索我能找到的唯一真正的答案如下:http://marc.info/? l = git&m = 122720741928774&w = 2,它基本上表明这是一个虚假的错误,它在堆顶上,因此没有说什么关于什么是真的错了.
我从哪里可以找出问题所在?
编辑:删除本地副本并重新克隆
我有一个像git树
A---B---C topic
/
D---E---F---G master <--
Run Code Online (Sandbox Code Playgroud)
我想删除主题及其上的所有对象.
我记下了主题的SHA ID,然后输入:
git branch -D topic
git gc # <-- I also tried prune here...
git checkout -b temp <SHA1 ID of topic>
Run Code Online (Sandbox Code Playgroud)
在最后一个命令之后,我希望得到一个错误(类似于"不存在的对象ID ......"或类似的那样).但是没有错误,gitk显示与上面相同的树结构?
我错过了什么 - 我认为gc/prune应该删除所有无法访问的对象?