git push를 하다가 아래의 에러를 만났다.
에러 내용
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet
Writing objects: 100% (344/344), 2.07 MiB | 2.01 MiB/s, done.
Total 344 (delta 47), reused 0 (delta 0), pack-reused 0
fatal: the remote end hung up unexpectedly
- Git이 업로드 도중 패킷을 너무 크게 만들어서 GitHub가 연결을 끊은 경우
원인을 알아보니 깃 패킷당 디폴트 전송 크기가 1MB로 되어있어서 제한에 걸려서 연결이 끊겼다고 한다.
해결 방법
git config --global http.postBuffer 524288000
http.postBuffer를 1MB -> 500MB로 늘리는 설정을 하니 푸시는 된다.
근데 이렇게 늘려도 괜찮은건지? 의문이 들어서 GPT한테 더 물어보니 아래의 답변을 한다.
요약하자면, 1MB → 15년 전의 레거시 기본값이어서 현대 네트워크 성능 고려하면 500MB으로 늘려도 충분하다는 얘기이다.
---
왜 기본이 1MB인가?
Git의 http.postBuffer는 한 번에 전송할 HTTP 패킷의 최대 크기를 의미합니다.
즉, push 시 Git이 데이터를 패킹(pack)해서 HTTP 요청으로 보낼 때
한 요청당 최대 몇 바이트를 보낼 수 있느냐를 제한하는 값이에요.
- 초기 Git (2000년대 후반) 시절엔 느린 네트워크 환경을 고려해서
1MB 정도로 작게 잡아둔 기본값이 남아있습니다. - 실제로 이 값은 보안이나 GitHub 정책과는 무관하며,
네트워크의 안정성을 위한 "전송 크기 단위"일 뿐입니다.
---
좀 찝찝해서 줄이거나 원복하고 싶다면
# 설정값 확인
git config --get http.postBuffer
# 10MB값으로 변경
git config --global http.postBuffer 10485760반응형
'기초 튼튼 > 시행착오노트' 카테고리의 다른 글
| [에러해결] ec2에서 docker-compose로 mysql 기동시 기존 유져 기존재 해결 (0) | 2025.02.01 |
|---|---|
| [Selenium] 크롬 드라이버 버전 문제 해결 (0) | 2023.10.28 |
| [elastic beanstalk 에러 해결] The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist. (0) | 2023.09.09 |
| [시행착오노트] AWS RDS 로컬 피시에서 접근하기 (0) | 2023.03.22 |
| [시행착오노트] MySQL rank 함수 구현 (0) | 2021.06.18 |