sourcecode

github에 커밋을 푸시할 때 git가 실패함

copyscript 2023. 8. 17. 21:45
반응형

github에 커밋을 푸시할 때 git가 실패함

저는 github에서 호스팅한 git repo를 노트북에 복제했습니다.저는 성공적으로 두어 번의 커밋을 github에 성공적으로 밀어 넣을 수 있었습니다.그러나 이제 다음과 같은 오류가 발생합니다.

Compressing objects: 100% (792/792), done.
error: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (1148/1148), 18.79 MiB | 13.81 MiB/s, done.
Total 1148 (delta 356), reused 944 (delta 214)

여기서부터는 그냥 멈춰서 결국 + 터미널로 돌아가야 합니다.

저도 같은 문제가 있었고, 그것은 당신이 푸시하려는 레포의 크기(편집된 크기 또는 특정 파일의 크기)와 관련이 있다고 생각합니다.

기본적으로 새 저장소를 생성하여 github에 푸시할 수 있었습니다.하지만 기존의 것은 작동하지 않을 것입니다.

HTTP 오류 코드가 '필요한 길이' 오류를 지원하는 것 같습니다.따라서 계산하기에는 너무 크거나 최대값보다 클 수 있습니다.누가 알겠어요.

편집

문제는 파일 크기가 큰 것일 수 있습니다.그 시점까지 성공적으로 푸시를 수행했음에도 불구하고 푸시되지 않는 업데이트가 하나 있었습니다.커밋에 파일이 하나밖에 없었는데 마침 160만개가 되었습니다.

그래서 다음과 같은 구성 변경 사항을 추가했습니다.

git config http.postBuffer 524288000

파일 크기를 500M까지 허용하고 푸시가 작동했습니다.이것은 처음에 http 프로토콜에 대한 큰 보고서를 추진할 때 문제였을 수 있습니다.

편집 종료

제가 그것을 작동시킬 수 있었던 방법은 (postBuffer를 수정하기 전의 EDIT) 제 레포를 타르 처리하고, 그것을 ssh를 통해 실행할 수 있는 기계에 복사한 후 github에 밀어넣는 것이었습니다.그런 다음 원래 서버에서 푸시/풀을 시도할 때 https를 통해 작동해야 합니다.(원래 푸시보다 훨씬 적은 양의 데이터이기 때문에).

이 명령이 도움이 되지 않는 경우

git config http.postBuffer 524288000

ssh 메서드를 https로 변경해 봅니다.

git remote -v
git remote rm origin 
git remote add origin https://github.com/username/project.git

서버 문제(예: "GitHub" 문제)처럼 보입니다.
만약 당신이 이 스레드를 본다면, 그것은 일어날 수 있습니다.git-http-backend손상된 힙을 가져옵니다. (그리고 스마트 http 지원 기능을 설치했기 때문에...)
그러나 실제 원인이 무엇이든 간에 최근 GitHub 파일 서버 중 하나에서 발생한 산발적인 장애와도 관련이 있을 수 있습니다.

이 오류 메시지가 여전히 표시됩니까?만약 당신이 한다면,

  • 로컬 Git 버전 확인(및 최신 버전으로 업그레이드)
  • GitHub 버그로 보고합니다.

참고: 스마트 HTTP 지원은 인증 기반 엔터프라이즈 방화벽 프록시를 사용하는 사람들에게 큰 도움이 됩니다!

지금부터 저장소를 복제할 경우http:// 및 으로 더 더 url 및 Git 라 1.6.6 이 하 는 Git 자 동 으 는 로 새 더 고 나 롭 은 전 메 즘 니 을 커 송 사 합 용 니 다 우 더 경 클 용 이 사 상 언 을 버 전 트 ▁and ▁url ▁mechanism ▁you it url 즘 ▁transport ▁the 다 니
그러나 더욱 놀라운 것은 이제 프로토콜을 오버라이드하고 개인 저장소도 복제할 수 있다는 것입니다.개인 저장소에 액세스하거나 공동작업자이며 푸시 액세스를 원하는 경우 URL에 사용자 이름을 입력할 수 있으며 액세스를 시도할 때 암호를 입력하라는 메시지가 표시됩니다.

또한 오래된 클라이언트는 오래되고 비효율적인 방식으로 되돌아가기 때문에 고장나는 것이 없어야 합니다. 단지 새로운 클라이언트가 더 잘 작동해야 합니다.

다시 말씀드리지만, 먼저 Git 클라이언트를 업그레이드하십시오.

저는 제가 호스팅하는 보노보깃 서버에 푸시하려고 했지만 http.postbuffer가 프로젝트 디렉토리를 의미한다는 것을 깨닫지 못했습니다.

그래서 다른 혼란스러운 것들에 대해서만:

왜냐고요? 저의 경우, 자산이 있는 대용량 zip 파일이 있었고 일부 PSD도 버퍼에 비해 크게 밀렸습니다.

http.postbuffer: 서버가 아닌 .git 폴더 옆에 있는 프로젝트 src 디렉터리에서 명령을 실행합니다.

해당 버퍼 크기의 대용량 임시(임시) 파일이 생성됩니다.

참고: 가장 큰 파일을 확인한 다음 버퍼를 설정합니다.

이 중 어느 것도 저에게 효과가 없었습니다. 해결책은 다음과 같이 제 보고서를 단계별로 단계별로 정리하는 것이었습니다.

git add -- . ':!path/to/big_folder_1'
git commit -m "commit x"
git push

... repeat

푸시 문제는 푸시해야 하는 파일의 크기 때문입니다.저는 2MB 크기의 라이브러리를 푸시하려고 했는데, 푸시 결과가 7로 RPC 오류를 발생시켰습니다.회선은 4 mbps이고 잘 작동하고 있습니다.그 후 몇 차례의 노력이 저를 성공으로 이끌었습니다.이러한 오류가 발생하면 몇 분 동안 기다렸다가 계속 시도하십시오.

또한 Github가 다운되었거나 네트워크가 불안정한 경우 RPC 장애가 발생한다는 것을 알게 되었습니다.

그래서 어느 정도의 간격을 두고 계속 노력하는 것이 유일한 선택입니다!

이러한 경우 https가 고착된 경우 ssh를 시도할 수 있습니다.

또한 버퍼 크기를 천문학적인 수치로 증가시켜 더 이상 버퍼 크기에 대해 걱정할 필요가 없도록 할 수 있습니다. http.postBuffer 100000000

언급URL : https://stackoverflow.com/questions/2702731/git-fails-when-pushing-commit-to-github

반응형