Git拉的速度非常慢。。。为什么?

Git拉的速度非常慢。。。为什么?,git,version-control,repository,Git,Version Control,Repository,注意,我已经研究了这个问题,但在他们的案例中,原因是大的二进制文件——而在我的存储库中只有PHP/JS/HTML/CSS代码(没有二进制文件),存储库中最大的文件大约为800 KB 我更改了一个文件(几行),然后是git add.和git commit-m“msg”,然后是git push origin master 在另一台机器上,当我执行git pull origin master时,它会下载一些MiB数据,计算增量并应用更改需要2分钟以上的时间。这里有严重的问题 我怀疑最近的一些行动可能导

注意,我已经研究了这个问题,但在他们的案例中,原因是大的二进制文件——而在我的存储库中只有PHP/JS/HTML/CSS代码(没有二进制文件),存储库中最大的文件大约为800 KB

我更改了一个文件(几行),然后是
git add.
git commit-m“msg”
,然后是
git push origin master

在另一台机器上,当我执行
git pull origin master
时,它会下载一些MiB数据,计算增量并应用更改需要2分钟以上的时间。这里有严重的问题

我怀疑最近的一些行动可能导致以下情况:

最近,我意外地添加了许多供应商资产(
bower\u组件
assets) 当我意识到这一点时,我使用了
gitrm
将它们从存储库中删除(当然还有
gitdadd
gitcommit
gitpush
到上游)

那是几天前的事了,我现在遇到的问题也就发生在那时

我有两个问题:

  • 为什么这是幸福
  • 如何修复我的存储库

注意:我是唯一一个使用并推动此回购的人。

问题出现在
EmberJS
app目录中。它包含
node\u模块
bower\u组件
目录,这些目录保存了
GruntJS
用来构建我的JS和CSS资产的第三方库

其中每一个都包含许多文件和目录。。考虑到依赖关系树包含数百个大小不等的库,从小的(很少的文件)到大的(很多文件)


删除这些目录并忽略它们之后,git存储库再次快速运行。

我有过类似的经历——git pull和push突然开始非常缓慢地运行,在本地Mac OSX和Linux/Apache服务器上都需要10分钟或更长时间。我在我的Mac电脑上删除了回购协议的本地副本,并将其重新锁定,它开始正常运行。在服务器上做了同样的事情,一切都很好。我想它不知怎么被破坏了?

我在处理数千个小文件时也遇到过同样的问题。 对我来说,解决这个问题的方法是在git repo的配置中设置postbuffer

git config http.postBuffer 524288000

它不是以18KB/s的速度上传,而是突然占用了全部带宽,以防有人无意中发现此线程,在删除你的.git文件夹之前,尝试重新启动你的wifi,这可能只是你的wifi连接问题。

我也有同样的问题。对我来说,这是一个IPv4/IPv6问题。我修复了强迫SSH使用IPv4的问题

在/etc/ssh/ssh\u config中设置“AddressFamily inet”以强制IPv4连接。然后重新启动ssh客户端
sudo服务ssh restart


更多信息。

我尝试了此线程中的所有解决方案,但没有成功。在一位同事的建议下,我尝试使用git协议2,结果非常有效(从等待拉/推开始的3分钟变为几秒钟)


尝试
git ls files
查看签入git的所有文件。我可以告诉你发生了什么总共有530个文件。。我已经查看了列表,所有这些都应该在那里(并且没有一个大于800KB)其他机器是否已经在删除供应商资产的位置进行了更改?如果没有,它可能需要在添加和删除它们的地方拉入修订,因为只需
git rm
ing它们就会在历史记录中留下添加内容。如果你做了一个新的改变,它会保持缓慢吗?在意外添加文件后,我在目标机器上做了一个拉。。。这是我意识到我的错误的时候。。所以我去了我的源机器,做了
git-rm
,往上游推,然后回到我的目标机器并拔出了动力,从那一刻起,对目标机器的每一次后续拉动都很慢。。。我知道它在第一次提交时必须下载这些文件。。但我希望它能在所有后续拉取中快速工作(无论我是否使用
git-rm
),这就是解决方案!!我终于解决了这个问题。您可以尝试
git fetch-4
git push-4
,看看在将问题添加到ssh\u config之前是否真正解决了问题。@Arst
git fetch-4
意味着什么?@kajibu它意味着使用IPv4。可以是-4、-ipv4。对于IPv6:-6--IPv6。我不明白为什么这个答案被否决了那么多。这可能是一些人的解决方案。路由器/调制解调器经常出现故障,导致性能或连接问题。
git config --global protocol.version 2