我在我的存储库中添加了两个大文件(每个 150MB),现在 git pull 总是挂在 54%。我使用 ping 检查了网络,尝试使用不同的网络,我做了一个 git fsck 等。没有任何帮助。
我该如何调试呢?
有没有办法一次只获取一个大文件?问题是我的本地 git 不知道最后一次提交 =-(
但即使从远程存储库中删除了这两个文件,我也无法拉取。
你用什么方法来“删除这两个文件”?
您需要从存储库历史记录中的所有提交中删除它们。
为此,请参阅例如:如何从 Git 存储库中的提交历史记录中删除/删除大文件?
要检查您git pull
是否真的停滞不前或非常慢:检查您的计算机和托管中央存储库的服务器之间的网络流量。
如果您有其他方法来获取 2 个大文件(例如:将它们从 USB 棒复制到您的本地存储库中......),您可以从本地存储库中运行git add
(不要运行git commit
)这些文件,然后git reset .
取消暂存它们。
这应该将这些文件添加到本地存储库中的已知对象列表中,并且git pull
不需要再次下载它们。
我认为您遇到的问题是您的克隆每次都会在中间中断。
因此,我建议您不要每次都从头开始一次又一次地克隆 repo,而是对新创建的 repo 进行 fetch。
基本上,初始化一个空的存储库
cd repo_name && git init
在此 repo 中添加原始 repo 作为远程
git remote add origin url/to/repo
现在做一个git fetch
.
这样,即使您的克隆在中间中断,fetch
也会注意仅在下次运行时引入未获取的对象。
增加 Git 缓冲区大小:
git config --global http.postBuffer 157286400
大小应设置为解决问题的最小值。