Git : RPC failed; HTTP 400

oweaj·2024년 9월 13일

git에 push 하려는데 아래와 같은 HTTP 400 에러가 나오면서 RPC failed로 push에 실패가 되었다.

Git: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400

참고글을 찾아보니 HTTP 400 에러는 여러 가지 원인으로 인해 원격 서버와의 통신 중단을 의미한다.

에러의 여러 가지 원인을 보면

  • 파일 크기 제한

    • Git은 기본적으로 100MB 이상의 파일을 푸시할 수 없다. 대용량 바이너리 파일 (gif, 영상, 대형 이미지)이 포함되어 있으면 HTTP 400 에러가 발생
  • 잘못된 원격 URL

    • 원격 저장소의 URL이 잘못 설정된 경우로 HTTPS 대신 SSH 또는 잘못된 도메인을 사용하는 경우
  • 저장소 권한

    • Git 서버에서 푸시하려는 저장소에 대한 권한이 없거나 권한이 제한된 경우
  • 네트워크

    • 네트워크 불안정 및 연결 시간이 초과되었을 때 발생

원인 및 해결

push 하려는 파일에 gif 형식의 파일이 많았고 이로인해 데이터가 커져 Git의 기본 100MB의 제한을 초과하여 Git 서버가 처리하지 못해서 발생하는 경우였다.
그래서 아래와 같이 Git의 HTTP의 postBuffer 버퍼 크기를 늘리는 방법으로 해결했다.

$ git config http.postbuffer 524288000 // postBuffer 크기 500MB로 설정

반대로 push 하는 파일을 줄이는 방법도있다.

불필요하거나 업로드하지 않아도 되는 파일이 있다면 스테이징 된 파일중 대용량 파일들을 지우는 방법이다.

profile
데굴데굴데굴데굴데굴

0개의 댓글