Mam tylko jedną gałąź. Od kilku miesięcy stosuję
git push origin master
zobowiązać się do mojego lokalnego repozytorium. Ostatniej nocy po wprowadzeniu niewielkich zmian w moim lokalnym repozytorium i próbie wypychania za pomocą tego samego polecenia otrzymałem ten błąd:
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
Przeszukałem go i znalazłem pytania takie jak to i to , ale żadna z odpowiedzi na te pytania nie rozwiązuje mojego problemu.
Większość odpowiedzi sugeruje problem z odłączoną głową . Jednak nie sądzę, żeby moja głowa była oderwana. Nie uważam też, że jestem na złej gałęzi (ponieważ mam tylko jedną gałąź ...)
Wykonałem kilka eksperymentów, aby dowiedzieć się, co jest nie tak, a oto wyniki, które otrzymałem:
(1) Najpierw jest mój git status
wynik
# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # egal.aux # egal.blg # egal.out # egal.pdf # egalcar.aux # egalcar.blg # egalcar.pdf nothing added to commit but untracked files present (use "git add" to track)
(2) Kiedy piszę git reflog
, widzę wszystkie moje lokalne zatwierdzenia, ale zdalne repozytorium po prostu nie jest aktualizowane.
(3) Kiedy piszę git branch -a
, otrzymuję
* master remotes/origin/master
(4) Kiedy piszę git remote show origin
, otrzymuję
* remote origin Fetch URL: http://github.com/CherryQu921/egaldoc_en Push URL: http://github.com/CherryQu921/egaldoc_en HEAD branch: master Remote branch: master tracked Local ref configured for 'git push': master pushes to master (fast-forwardable)
Myślę, że ostatni wiersz wyjścia („przewijanie do przodu”) jest dziwny, ale nie jestem pewien, co jest nie tak ...
fast-forwardable
oznacza, że możeszOdpowiedzi:
Jeśli próbujesz wcisnąć duży zbiór zmian do repozytorium Git z HTTP lub HTTPS, może pojawić się komunikat o błędzie, takie jak błąd:
RPC failed; result=22, HTTP code = 411
. Jest to spowodowane domyślną konfiguracją Git, która ogranicza niektóre operacje HTTP do 1 megabajta.Aby zmienić ten limit, uruchom w swoim lokalnym repozytorium
gdzie bajty to maksymalna dozwolona liczba bajtów. Na przykład:
Za 500 MB (dzięki @Hengjie)
źródło
git config http.postBuffer 524288000
500 MB./etc/nginx/sites-available/gitlab
). Więcej informacji: github.com/gitlabhq/gitlabhq/issues/3099RPC failed; result=22, HTTP code = 502
?Możesz to również zrobić globalnie -
Dzięki temu wszystkie lokalne repozytoria będą mogły przesłać do 500 MB danych.
źródło
Żadne z dostarczonych rozwiązań nie zadziałało. Musieliśmy przejść na,
ssh
aby to zadziałało zamiastHTTPS
rozwiązania.źródło
Jeśli używasz TortoiseGit dla Windows, najłatwiejszym sposobem jest użycie zintegrowanej konfiguracji.
W eksploratorze plików naciśnij lewy przycisk myszy, wybierz TortoiseGit -> Ustawienia . Zaakceptuj wiadomość informacyjną. Teraz możesz wybrać, czy chcesz skonfigurować właściwość tylko dla bieżącego projektu, czy systemu. Aby skonfigurować systemową konfigurację, naciśnij „edytuj systemowy gitconfig” i dodaj następną linię do sekcji
[http]
:(jeśli sekcja
[http]
nie istnieje, utwórz ją)źródło
Rozwiązałem błąd 22 w następujący sposób: W poleceniu „git clone” NIE podałem użytkownika: hasło. Klon zadziałał, ale nie popchnął. Rozwiązanie dla błędu 22: Zmodyfikuj adres URL .git / config w następujący sposób: url = http: // user: pwd @ host / ... Następnie wypychanie zadziałało.
źródło