对Git的承诺不好

6 git

好的,大约700次提交前(> 30天)我意外地在我的本地Git存储库中保存了ThirdParty/mapper/Songbird_1.2.0-1146_windows-i686-msvc8.exe(iTunes下载类型)而没有注意到,这也被推送到远程托管git仓库,我注意到前一天回购超过200mb,而我期待大约20mb.

我按照以下说明操作:http: //github.com/guides/completely-remove-a-file-from-all-revisions

除了运行git gc --aggressive --prune之外,本地目录仍然超过200mb.在我可以对远程仓库进行排序之前,我需要对我的本地进行排序,是否有一些关于我的案例的特殊内容(即大量文件,很久以前提交).如何完全删除此文件并将目录缩小到正确的大小?

注意避免迁移:我觉得这更适合StackOverflow,因为Git目前主要是本地开发人员工具,社区支持而不是任何主流发行版或系统管理员期望的一部分,即在开发时知道管理员git的时刻最好.

Gre*_*con 3

我在“git:收缩 Subversion 导入”中写到了类似的问题

联机git filter-branch帮助页有一个用于缩小存储库的清单,建议运行filter-branch然后克隆以留下痕迹。

使用文件系统路径进行克隆会产生硬链接,因此请使用 URL:

$ git clone file:///home/gbacon/src/dBTools.git
Run Code Online (Sandbox Code Playgroud)

即使在这样做之后,一些大的无名斑点仍然在克隆中幸存下来。感谢 freenode 上的 #git 提出删除引用日志的建议:

$ git reflog expire --verbose --expire=0 --all
$ git gc --prune=0
Run Code Online (Sandbox Code Playgroud)