是git push太慢了还是有什么问题?

q8l4jmvw  于 2023-04-10  发布在  Git
关注(0)|答案(4)|浏览(208)

我有很多相关的代码,我决定把它们整合到一个github仓库中。我不小心提交,推送,移动和删除了更大的文件(大于50 MB)。我对git不是很有经验,所以做了很多事情,比如使用mv/rm而不是git mv/rm。我回顾了一下,试图纠正这个问题,但不确定我是否混淆了事情。
当我试着推的时候,我只得到:

-bash-4.1$ git push
Counting objects: 1288, done.
Delta compression using up to 8 threads.
Connection to github.com closed by remote host.
fatal: The remote end hung up unexpectedly
compressing objects:  87% (1060/1211)

但它似乎只是挂在那里。有没有办法告诉是否有问题,或者如果我只是需要等待更长的时间?
我试着增加post buffer:

-bash-4.1$ git config --global http.postBuffer 157286400

但这似乎没有帮助。
为了给予你和我做的repo/文件大小的想法:

-bash-4.1$ du -sh *
126M    mg
4.0K    readme.md

-bash-4.1$ find ./ -type f -size +50M -exec ls -lh {} \;
-r--r--r-- 1 oc13378 emat13r 55M Oct 25 18:48 ./.git/objects/a6/c86199d33fac72d856d3381fe07239d7089b80
-r--r--r-- 1 oc13378 emat13r 65M Oct 25 19:00 ./.git/objects/d6/c82684b7db5939dbec6193d9a16b9b0954740c
-r--r--r-- 1 oc13378 emat13r 56M Oct 25 18:57 ./.git/objects/bd/0a85627a6fe53e0322ebf33c70d1ad1f26642b
-r--r--r-- 1 oc13378 emat13r 67M Oct 25 18:56 ./.git/objects/63/4209365d534cc6dd7d081c949b123df8052bd0
-r--r--r-- 1 oc13378 emat13r 60M Oct 25 18:55 ./.git/objects/2b/25a30d92e48a72e32d7062a4c5ffc5734fec94
-r--r--r-- 1 oc13378 emat13r 58M Oct 25 18:46 ./.git/objects/50/5495be51d3d8bd98b0c67a3ed41859fc92153f
-r--r--r-- 1 oc13378 emat13r 58M Oct 25 19:03 ./.git/objects/38/99700d5472df9442e118c82dd8fe9ee336bc5b
-r--r--r-- 1 oc13378 emat13r 52M Oct 25 18:44 ./.git/objects/b4/42ac818898e285c524e9300ecfa46ca53a2c3c
-r--r--r-- 1 oc13378 emat13r 54M Oct 25 19:00 ./.git/objects/4f/386fbc1389074f548a70a7a6f6e65df1a57710
-r--r--r-- 1 oc13378 emat13r 53M Oct 25 18:55 ./.git/objects/37/c25b249642f200c8e5c427d1c6d9b57c5ed089
-r--r--r-- 1 oc13378 emat13r 51M Oct 25 18:37 ./.git/objects/e9/54a09381e8e9a452a672886536718f73587e31
-r--r--r-- 1 oc13378 emat13r 52M Oct 25 18:37 ./.git/objects/b2/3ab90e379e2647c0bb9ccfdc6346b2c3d8df8f
-r--r--r-- 1 oc13378 emat13r 57M Oct 25 18:59 ./.git/objects/ac/ca72cfb9a4537828fd747b0a05ec0a79efdc65
-r--r--r-- 1 oc13378 emat13r 55M Oct 25 18:47 ./.git/objects/2e/da077ed31886e677dcb2b4bc6b1abe340527b6
-r--r--r-- 1 oc13378 emat13r 56M Oct 25 18:41 ./.git/objects/2e/d7ea9d06803d85ce9504c69619c516c2bac928
-r--r--r-- 1 oc13378 emat13r 51M Oct 25 18:45 ./.git/objects/04/b1e3fdcf9bc74c696f77c3b7d5f0d2fa5be992
-r--r--r-- 1 oc13378 emat13r 59M Oct 25 18:57 ./.git/objects/d5/355a991c4812379649e94123feb518160cc6cb
-r--r--r-- 1 oc13378 emat13r 53M Oct 25 18:56 ./.git/objects/ec/93271bb4b898438b2c90b7048a26f8dc54b553
-r--r--r-- 1 oc13378 emat13r 63M Oct 25 18:47 ./.git/objects/85/e33df7c1882788b12ee866d8c38427bd22aa44
-r--r--r-- 1 oc13378 emat13r 55M Oct 25 18:48 ./.git/objects/ce/70d6d87e7d810c570da3e2e534213653c05de6
-r--r--r-- 1 oc13378 emat13r 57M Oct 25 18:37 ./.git/objects/7a/abe86d346247dceadb0324696a044331f56440
-r--r--r-- 1 oc13378 emat13r 51M Oct 25 18:46 ./.git/objects/2a/d85020500a36387d60046c9e5ddf500aa44286
-r--r--r-- 1 oc13378 emat13r 59M Oct 25 18:59 ./.git/objects/fb/6928f2f569361935db50d4f0ed8ece5feaf6f1
-r--r--r-- 1 oc13378 emat13r 54M Oct 25 19:01 ./.git/objects/c6/c2843b3b40bf6c6b7b6f974f004009b8e45e4e
-r--r--r-- 1 oc13378 emat13r 56M Oct 25 18:47 ./.git/objects/fe/0b521c082fb0290bb011c73daba372b4805db4
-r--r--r-- 1 oc13378 emat13r 61M Oct 25 19:02 ./.git/objects/5a/373c53b589d429eff09e1d2a18d9b7f85658cf
-r--r--r-- 1 oc13378 emat13r 53M Oct 25 18:37 ./.git/objects/bb/e662205d31a9ccbd2d755fc46f99aae4bd0fe2
-r--r--r-- 1 oc13378 emat13r 51M Oct 25 18:37 ./.git/objects/69/32e59d33eae1e13357d0e048dee3f77b97ba72

最后一件事是电脑太旧了,内存不足。这会是个问题吗?

-bash-4.1$ free
              total       used       free     shared    buffers     cached
Mem:       8059876    1112512    6947364          0       6372     927848
-/+ buffers/cache:     178292    7881584
Swap:      4194300      31156    4163144
-bash-4.1$ free -m
              total       used       free     shared    buffers     cached
Mem:          7870       1086       6784          0          6        906
-/+ buffers/cache:        174       7696
Swap:         4095         30       4065

我最近的一次尝试以失败告终:

-bash-4.1$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
#
nothing to commit (working directory clean)
-bash-4.1$ git push
Counting objects: 1288, done.
Delta compression using up to 8 threads.
Connection to github.com closed by remote host.
fatal: The remote end hung up unexpectedly
error: pack-objects died of signal 9)   
error: pack-objects died with strange error
error: failed to push some refs to 'git@git-uni:OliCUoB/wc.git'
9avjhtql

9avjhtql1#

最后一件事是电脑太旧了,内存不足。这会是个问题吗?
是的。signal 9意味着你的包进程(构建一个瘦包发送到GitHub)已经被“OOM杀手”杀死了。另请参阅Git out of memory and then fatal - early EOF(这是 * 服务器 * 内存不足的情况,因此有点不同)。
您可以尝试在您的一侧使用打包参数:

  • core.packedGitWindowSize
  • core.packedGitLimit
  • pack.window
  • pack.depth
  • pack.windowMemory
  • pack.deltaCacheSize
  • pack.threads(与内存无关,但更多线程=需要更多RAM)

但是最好的办法是给予你的机器更多的内存(真实的的RAM、交换/分页空间,或者两者都有)。

bd1hkmkf

bd1hkmkf2#

这为我解决了
git reset origin/branchName
git add -agit commit -m "commit message"
git push

23c0lvtd

23c0lvtd3#

一个额外的设置可以帮助加速git push

git -c push.useBitmaps=false push

在Git 2.38(2022年第3季度)中,当使用可达性位图时,“git push”(man)有时表现不佳,即使在其他操作由位图帮助的存储库中也是如此。
引入push.useBitmaps配置变量是为了允许仅对git push禁用可达性位图。
参见commit 82f67ee(17 Jun 2022)by Kyle Zhao ( yefengzkk )
(由Junio C Hamano -- gitster --合并于commit 81705c4,2022年7月13日)

send-pack.c:添加配置push.useBitmaps

签字人:凯尔简介
可达性位图旨在加快克隆或提取期间生成包的“计数对象”阶段。
它们没有针对通过git push发送小主题分支的Git客户端进行优化。
在某些情况下(参见this thread,在“git push”(man)期间使用可达性位图可能会导致显著的性能下降。
添加一个新的“push.useBitmaps”配置变量,允许用户告诉“git push”不要使用位图。
我们已经有了“pack.bitmaps“来控制位图的使用,但是一个单独的配置变量允许可达性位图仍然在其他区域使用,比如“git upload-pack“(man),而只对git push“禁用它。
git config现在在其手册页中包括:

push.useBitmaps

如果设置为“false”,即使pack.useBitmaps为“true”,也会禁止对“git push“使用位图,但不会阻止其他git操作使用位图。
默认为true。

798qvoo8

798qvoo84#

我还遇到了一些意想不到的git中每个操作的缓慢。
git修剪

相关问题