Jakoś usunąłem cały katalog mojej gałęzi kodu. Sklonowałem nowy. Działało dobrze oprócz pchania.
~/workspace/wtf (mybranch)]$ git push origin mybranch
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed
git pull działa jednak. Jak mogę to naprawić?
http.receivepack
.Odpowiedzi:
Popełniłem błąd, używając https zamiast ssh do nowej kopii. Od tego czasu wprowadzałem modyfikacje i zmiany, ale nie mogłem naciskać z oczywistych powodów.
Aby odzyskać, po prostu zmieniłem sekcję [zdalne „pochodzenie”] w .git / config z
do
Potem mogłem ponownie naciskać.
źródło
git-http-push failed
, że widzę, że operacja próbuje skonfigurować rzeczy albo przez HTTP albo https, -1.Szybsze przesyłanie HTTP za pomocą samego git - webDAV nie jest wymagane
Nowa obsługa „smart-http” od git 1.6.6. Nowa metoda umożliwia jednoczesne przesłanie całego pakietu, a nie pojedynczych plików.
Możesz także użyć gitweb, aby zapewnić przeglądalne adresy URL w tej samej lokalizacji.
Uwaga: Ponieważ dostęp jest kontrolowany przez apache, możesz dodać dowolne wymagania Auth (htaccess lub ldap itp.) Do konfiguracji dla każdego repozytorium.
Ta odpowiedź zakłada, że jesteś właścicielem zdalnego serwera i chcesz dodać / naprawić obsługę HTTP.
PO PIERWSZE: Sprawdź dzienniki apache, prawdopodobnie nie ma uprawnień / nie można zlokalizować błędu, gdy apache próbuje wykonać skrypty cgi wspierane przez git-http.
Dodanie obsługi HTTP do git
Po prostu stwórz nowy plik git_support.conf i dołącz go do apache (dodaj instrukcję include w httpd.conf)
Rezultatem jest zdolność do pchania / ciągnięcia:
Możesz przeglądać te zmiany online ..
Źródło: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
źródło
"SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."
- dlaczego?Aby włączyć „ git push ” przez HTTP, musisz włączyć WebDAV na serwerze WWW. Aby to zrobić dla Apache Webserver, po prostu edytuj plik konfiguracyjny:
Następnie wyszukaj wiersz zaczynający się od:
Dodaj następujący wiersz tuż po nim:
Upewnij się, że masz następujący wiersz również w httpd.conf bez komentarza:
Po tym jesteś gotowy. Uruchom ponownie serwer Apache Webserver, używając:
Upewnij się również, aby wszystkie pliki repozytorium git na serwerze były zapisywalne przez użytkownika i grupę pache: apache:
W przeciwnym razie niepowodzenie ustawienia poprawnych uprawnień spowoduje „błąd PUT: wynik zawinięcia = 22, kod HTTP = 403” podczas wykonywania „git push”.
Teraz po prostu wykonaj „git push” z komputera klienckiego i wszystko powinno działać.
źródło
Nie można naciskać na repozytorium sklonowane przez HTTP. Musisz zaktualizować adres URL do adresu URL typu
ssh://
lubgit://
.źródło
git remote -v
?Edytuj następującą sekcję pliku .git / config:
do
Więc spróbuj
git push origin master
.Edytuj szczegóły uwierzytelnienia w plikach konfiguracyjnych dla innych adresów URL repozytorium zgodnie z wymaganiami i przekaż do wymaganego oddziału.
źródło
git remote set-url origin ...
działa również.Miałem ten sam problem z operacją wypychania z backendem git-http, konfiguracją uwierzytelniania ldap.
Wreszcie znalazłem rozwiązanie i opisałem je w tym pytaniu dotyczącym błędu serwera
Może pomoże to komuś z podobnym problemem.
źródło
Świetny
Miałem inne błędy, ale działa!
próbuję wyjaśnić:
Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
user1520409
ist works.ALE jak ukryć hasło przed tekstem w wiadomości push?
źródło
Może się to również zdarzyć, jeśli wprowadzisz nieprawidłowe hasło.
źródło
fatal: Authentication failed
pierwszy