我一直在尝试通过将一些文件移动到Git LFS来减小我的Git存储库的大小。经过几百个命令,现在我的文件已经在git LFS中,并且在我的git提交中不再有这些文件的历史记录。
然而,每当我克隆存储库时,仍会下载约3GB的对象。我通过在Visual Studio Team Services中创建一个新存储库解决了这个问题,在本地修剪和垃圾回收我的存储库后,将其推送到那里,它被缩小到300MB。 (在此帖子中找到在本地执行此操作的命令:Git:什么是悬空提交/ blob以及它们从哪里来?)
然而,我无法想象您总是必须删除/重新创建完整的存储库才能删除悬空提交。
我还尝试过进行git init,然后将其推送到现有存储库,但它只会进一步增加对象计数。
对于任何遇到类似问题的人,以下是我执行的命令,用于创建没有悬空提交的新存储库。但是,我仍然希望找出如何在现有存储库中执行此操作而无需删除它:
然而,每当我克隆存储库时,仍会下载约3GB的对象。我通过在Visual Studio Team Services中创建一个新存储库解决了这个问题,在本地修剪和垃圾回收我的存储库后,将其推送到那里,它被缩小到300MB。 (在此帖子中找到在本地执行此操作的命令:Git:什么是悬空提交/ blob以及它们从哪里来?)
然而,我无法想象您总是必须删除/重新创建完整的存储库才能删除悬空提交。
我还尝试过进行git init,然后将其推送到现有存储库,但它只会进一步增加对象计数。
对于任何遇到类似问题的人,以下是我执行的命令,用于创建没有悬空提交的新存储库。但是,我仍然希望找出如何在现有存储库中执行此操作而无需删除它:
git clone https://avavedse.visualstudio.com/Test/_git/TestRepository
cd blahblah
git reflog expire --expire=now --all
git gc --prune=now
git remote add newrepo https://avavedse.visualstudio.com/Test/_git/TestRepositoryNewEdition
git push newrepo
git gc
的控制,则您可能能够通过清理它而不是替换它来解决问题,但我通常不指望这一点。 - Mark Adelsbergergc
接口 - 我相信VSTS没有 - 那么你必须替换存储库。 时期。 - Mark Adelsberger