Mam następujący problem, gdy próbuję pobrać kod za pomocą git Bash w systemie Windows:
fatal: could not read Username for 'https://github.com': No such file or directory
Próbowałem już wdrożyć przyjęte tutaj rozwiązanie:
... ale problem nadal występuje. Po dodaniu / usunięciu pochodzenia nadal pojawia się ten sam błąd.
git config --global user.name "Your Name Here"
Odpowiedzi:
Postępuj zgodnie z instrukcjami, aby skonfigurować klucze SSH tutaj: https://help.github.com/articles/generating-ssh-keys
LUB
źródło
git remote set-url origin https://{username}:{password}@github.com/...
git remote -v
error: cannot spawn sh: No such file or directory
wiadomość ...Miałem dokładnie ten sam problem. Ten problem wystąpił, gdy sklonowałem przy użyciu adresu URL HTTPS, a następnie próbowałem wypchnąć zmiany za pomocą Git Bash w systemie Windows przy użyciu:
Jednak gdy użyłem adresu URL SSH do sklonowania, ten problem nie wystąpił:
źródło
python:3.7-slim
. Więc to nie jest związane z Windows.Dla mnie nic nie działało z sugerowanych powyżej, używam
git pull
skryptu powłoki jenkinsa i najwyraźniej bierze złą nazwę użytkownika. Spędziłem wieki, zanim znalazłem sposób, aby to naprawić bez przełączania się na SSH.W folderze użytkownika utwórz plik .gitconfig (jeśli jeszcze go nie masz) i umieść swoje poświadczenia w następującym formacie:,
https://user:[email protected]
więcej informacji . Po linku do pliku .gitconfig do tych poświadczeń, w moim przypadku było to:[credential] helper = store --file /Users/admin/.git-credentials
Teraz git zawsze będzie używał tych poświadczeń bez względu na wszystko. Mam nadzieję, że to komuś pomoże, tak jak pomogło mi.
źródło
[credential] helper = store --file /..../.git-credentials
się.git/config
w moim katalogu roboczymZwróć uwagę, że jeśli zamiast tego otrzymujesz ten błąd:
Następnie musisz zaktualizować swój Git do wersji
2.16
lub nowszej.źródło
Znalazłem swoją odpowiedź tutaj :
edytuj
~/.gitconfig
i dodaj:Chociaż rozwiązuje inny problem, kod błędu jest taki sam ...
źródło
Jeśli chcesz nadal używać protokołu HTTPS zamiast ssh i ze względów bezpieczeństwa unikaj wpisywania nazwy użytkownika i hasła.
Możesz także wypróbować token Github OAuth , a następnie możesz to zrobić
git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git'
lubgit remote add origin 'https://{token}@github.com/{username}/{project}.git'
To działa dla mnie!
źródło
Ten błąd może również wystąpić podczas próby sklonowania nieprawidłowego adresu URL HTTP. Na przykład jest to błąd, który otrzymałem podczas próby sklonowania adresu URL GitHub, który miał kilka znaków odstępu:
Jednak faktycznie wydarzyło się to w Emacsie, więc błąd w Emacsie wyglądał następująco:
Więc zamiast pomocnego błędu mówiącego, że nie ma takiego repozytorium pod tym adresem URL, dało mi to, wysyłając mnie na dziką gęś, aż w końcu zdałem sobie sprawę, że adres URL jest nieprawidłowy.
Dotyczy to git w wersji 2.7.4.
Publikuję to tutaj, ponieważ zdarzyło mi się to miesiąc temu i znowu przed chwilą, wysyłając mnie ponownie na tę samą dziką gęś. > :(
źródło
Krótka odpowiedź:
Zignoruj pierwsze trzy wiersze, jeśli nie jest to nowe repozytorium.
Dłuższy opis:
Po prostu miałem ten sam problem, ponieważ żadna z powyższych odpowiedzi mi nie pomogła, zdecydowałem się opublikować to rozwiązanie, które działało dla mnie.
Kilka uwag:
Jako narzędzie wiersza poleceń użyłem GitShell (dla Windows używam Terminal.app na Macu).
GitShell to oficjalne narzędzie GitHub, które można pobrać ze strony https://windows.github.com/
Mam nadzieję, że to pomoże każdemu, kto ma ten sam problem.
źródło
Naprawiłem to, instalując nowszą wersję Git. Wersja, którą zainstalowałem, to 2.10.2 z https://git-scm.com . Zobacz ostatni post tutaj: https://www.bountysource.com/issues/31602800-git-fails-to-authenticate-access-to-private-repository-over-https
W nowszym Git Bash pojawia się okno menedżera poświadczeń i możesz wprowadzić swoją nazwę użytkownika i hasło, i to działa!
źródło
Jest to problem z poświadczeniami przechowywanymi w pamięci podręcznej danych logowania systemu. Prawdopodobnie masz zmienną konfiguracyjną „credential.helper” ustawioną na wincred lub winstore i nie można jej wyczyścić. Jeśli uruchomisz Panel sterowania i aplet Credential Manager, poszukaj elementów w sekcji ogólnych poświadczeń oznaczonej „git: https://github.com ”. Jeśli je usuniesz, zostaną one ponownie utworzone następnym razem, ale narzędzie pomocnicze poświadczeń poprosi o podanie nowych poświadczeń.
źródło
git config --global -l | grep credential
. Jeśli pojawi się cokolwiek, będzie to narzędzie, które próbuje przekazać przechowywane poświadczenia na serwer podczas wypychania.git remote add origin https://github.com/username/Hello-World.git
username
Zastąp zdalny adres URL w następujący sposób:
źródło
TL; DR: sprawdź, czy możesz czytać / pisać
/dev/tty
. Jeśli nie, a używałeśsu
do otwierania powłoki, sprawdź, czy użyłeś jej poprawnie.Miałem ten sam problem, ale w systemie Linux i znalazłem problem. Nie mam zapisanych moich danych uwierzytelniających, więc zawsze wprowadzam je na żądanie:
Sposób, w jaki git obsługuje połączenia http (s)
/usr/lib/git-core/git-remote-https
, można zobaczyć tutaj:Więc spróbowałem nazwać to bezpośrednio:
a wynik:
I tu przyszło do mnie:
git-remote-https
próbuje odczytać poświadczenia za pośrednictwem,/dev/tty
więc przetestowałem, czy działa:Ale w innym terminalu:
Wiedziałem, że przełączyłem się na tego użytkownika,
su
więc opuściłem powłokę, aby zobaczyć, jak i dowiedziałem się, że użyłem polecenia,su danman -
więc przetestowałem go ponownie:Prawdopodobnie zignorowałem wiadomość i kontynuowałem pracę, ale to był powód. Kiedy przełączyłem używając poprawnego,
su - danman
wszystko działało dobrze:Po tym git zaczął działać poprawnie
źródło
Dla tych, którzy otrzymują ten błąd w potoku Jenkins, można go naprawić za pomocą wtyczki agenta SSH . Następnie zawiń swoje polecenia git w coś takiego:
źródło
próbując rozwiązania CreativeMagic, problem z poświadczeniami został potwierdzony:
podpowiedź >>> Nazwa użytkownika dla „ https://github.com ”
Więc zmieniłem adres URL pochodzenia z
i
źródło
Spróbuj użyć normalnej powłoki systemu Windows, takiej jak CMD.
źródło
Wcześniej, gdy nie otrzymałem pozwolenia na dostęp do repozytorium, dodałem również klucz SSH do gitlab. W tym momencie mogłem uzyskać dostęp do repozytorium i uruchomić dostawcę modów go, ten sam problem, co twój. (może z powodu pamięci podręcznej)
Po chwili postanawiam usunąć klucz SSH i monity terminala o podanie nazwy użytkownika i hasła. Wszystko w porządku!
źródło
Udało mi się zmienić dostęp do repozytorium Git z prywatnego na publiczny.
źródło