gpt4 book ai didi

git - 如何删除远程 git 存储库(如 VSTS)中的悬空提交

转载 作者:行者123 更新时间:2023-12-04 02:05:01 35 4
gpt4 key购买 nike

我一直在尝试通过将一些文件移动到 git LFS 来减小 Git 存储库的大小。再执行 100 个命令,这里我们使用的是 git LFS 中的文件,并且在我的 git 提交中不再有这些文件的历史记录。

但是,每当我克隆存储库时,我仍在下载大约 3GB 的对象。我通过在 Visual Studio Team Services 中创建一个新存储库并在本地修剪和垃圾收集我的存储库,然后推送到那里来解决这个问题,它减少到 300mb。
(在这篇文章中找到的在本地执行此操作的命令: Git: what is a dangling commit/blob and where do they come from? )

但是我无法想象您总是必须删除/重新创建一个完整的存储库来删除悬空提交。

我还尝试过执行 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

最佳答案

这可能是 How to remove a dangling commit from GitHub? 的副本
GitHub 将定期垃圾收集无法从顶级引用访问的对象。所以随着时间的推移,它们会消失。但这并不能保证。这是我在这方面找到的最好的信息。
您可以手动更正 reflogs 截止日期到现在并运行垃圾收集器:

git reflog expire --expire=now --all
git gc --prune=now
但这只会影响本地 repo 。
显然,垃圾收集器远非理想,除非您不介意删除和创建新的存储库并丢失所有问题、 pull 请求等,否则您必须联系 Github Support :

you can permanently remove cached views and references to thesensitive data in pull requests on GitHub by contacting GitHub Supportor GitHub Premium Support.[docs.github.com]

关于git - 如何删除远程 git 存储库(如 VSTS)中的悬空提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161548/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com