- [Git] git push 하는데 HTTP 400 error??2024년 10월 21일 21시 53분 05초에 업로드 된 글입니다.작성자: do_hyuk
문제 상황
원격 레포지토리에 .gif 파일 하나를 push 하니까 갑자기 아래와 같은 에러메시지가 떳다.
Push failed Total 8 (delta 2), reused 0 (delta 0), pack-reused 0 RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 send-pack: unexpected disconnect while reading sideband packet the remote end hung up unexpectedly
이 오류는 Git에서 푸시를 시도할 때 발생하는 문제로, HTTP 400 에러는 잘못된 요청을 의미한다.
찾아보니 레포지토리 url 연결이 잘못되어있거나 push 할 파일의 용량이 클 때 발생할 수 있다고 한다.
1. 레포지토리 url 연결??
git remote -v
레포지토리 연결 상태를 확인해 보니 문제가 없다고 생각함
2. 파일의 용량 문제??
GitHub에서는 개별 파일의 최대 크기가 100MB이다. gif 파일 하나가 100MB가 넘을리가 없는데..라고 생각하며 혹시 모르니 확인해본다.
ls -lh path/file
경로에 있는 파일의 용량을 확인하는 명령어이다.
확인해보니 1.6MB가 였다.
해결
다른 문제가 있나 찾아보다 push 할때 Git의 http 버퍼 크기가 작기 때문에 실패할 수 있다는걸 알았다.
// 현재 http buffer 크기를 출력해주는 명령어 git config --global --get http.postBuffer
아무것도 출력되지 않는다면 기본적으로 1MB로 설정되어 있다고 한다.
내 gif 파일이 1.6MB이기 때문에 버퍼 용량으로 400에러가 발생했다고 판단하고 Buffer의 크기를 조정하기로 했다.
// http buffer의 크기를 500MB로 변경 git config --global http.postBuffer 524288000
변경 후 잘 적용됐는지 확인해 본 뒤 push를 보내니 성공했다!
httpBuffer를 늘릴 경우 더 많은 메모리를 잡아먹고 작은 파일을 자주 push하는 경우에는 큰 버퍼가 오히려 비효율적이기 때문에
다시 1MB로 조정했다.
[1MB = 1048576]
'우아한테크코스 > TIL' 카테고리의 다른 글
[1주차] 커밋(Commit) 컨벤션 (4) 2024.10.16 댓글