Właśnie straciłem kilka repozytoriów z dysku, więc sklonowałem je z GitHub. Teraz pytają o nazwę użytkownika i hasło za każdym razem, gdy przesyłam coś do GitHub. Te, które nie zostały usunięte, tego nie robią.
Jedynym rozwiązaniem, które przeczytałem, aby pozbyć się pytania o nazwę użytkownika / hasło, jest wygenerowanie klucza ssh. Chodzi o to, że mam już klucz, w przeciwnym razie nie mógłbym pchać bez monitów w tych repozytoriach, których nie klonowałem.
Przejrzałem git config
dwa z moich repozytoriów, jedno, które mogę wypychać bez hasła i jedno, które sklonowałem. Jedyną różnicą było branch.master.remote
i branch.master.merge
ustawienia, które ustawione, czyniąc git config
to samo. Ale podpowiedź wciąż tam jest.
Nie jestem nawet pewien, czy wygenerowanie nowego klucza ssh będzie działać. Jakie są moje opcje?
Odpowiedzi:
Zgaduję że:
Twoje stare repozytoria korzystały z pilotów SSH (
[email protected]:
lubssh://[email protected]/
prefiksów), które korzystały z uwierzytelniania klucza publicznego. (W rzeczywistości serwer Github SSH nigdy nie prosi o hasło.)Nowe repozytoria korzystają z pilotów HTTP ( ), które obsługują tylko uwierzytelnianie podstawowe HTTP oparte na hasłach i nie używają kluczy SSH.
https://username@github.com/
Zmień zdalne adresy URL, aby ponownie korzystać z SSH. Aby to zrobić, użyj
git remote set-url
lub edytuj.git/config
. Zastąpićz właśnie
Możesz nawet mieć wpis,
~/.gitconfig
który mówi gitowi, aby tłumaczył zdalne adresy URL z HTTP lub Git na SSH.W ten sposób, jeśli twoje repozytorium jest skonfigurowane dla zdalnego HTTP lub Git, git zignoruje to ustawienie podczas wypychania i zamiast tego użyje SSH.
(
insteadOf =
Możliwe jest również ustawienie, aby zastąpić zarówno ciągnięcie, jak i pchanie).źródło