Ilekroć próbuję wcisnąć do mojego repozytorium, prosi o jedno i drugie username & password
.
Nie mam problemu z ponownym wprowadzaniem hasła za każdym razem, ale problem polega na wprowadzeniu nazwy użytkownika. Używam https
do klonowania mojego repozytorium.
Jak mogę skonfigurować git, aby nie pytał username
o każdy z nich git push
.
Jestem nowy w systemie Linux, ale IIRC w Windows git push
pyta tylko o hasło.
Odpowiedzi:
Edytuj (autor: @ dk14 zgodnie z sugestiami moderatorów i komentarzy)
OSTRZEŻENIE: Jeśli użyjesz
credential.helper store
odpowiedzi, hasło zostanie zapisane całkowicie niezaszyfrowane („jak jest”) w~/.git-credentials
. Zapoznaj się z sekcją komentarzy poniżej lub odpowiedziami z sekcji „Powiązane”, zwłaszcza jeśli Twój pracodawca nie toleruje problemów związanych z bezpieczeństwem.Nawet jeśli zostanie zaakceptowany, nie odpowiada na pytanie OP dotyczące pominięcia tylko nazwy użytkownika (nie hasła). Dla czytelników mających dokładnie ten problem przydatna może być odpowiedź @ grawity .
Oryginalna odpowiedź (autor: Alexander Zhu):
Możesz przechowywać swoje poświadczenia za pomocą następującego polecenia
Radzę też przeczytać
$ git help credentials
źródło
git config --unset credential.helper
Możesz to zrobić w
.git/config
pliku lokalnego repozytorium. Ten plik zawiera sekcję o nazwie „zdalny” z wpisem o nazwie „url”. Wpis „url” powinien zawierać link https repozytorium, o którym mówisz.Po prefiksie „url” hosta nazwą użytkownika
git
nie powinieneś już pytać o nazwę użytkownika. Oto przykład:źródło
git config credential.helper store
.username for https://gitlab.com:
unable to access 'https://<me>@bitbucket.org:<x>/<y>.git/': Illegal port number
Trwałe uwierzytelnianie za pomocą repozytoriów Git
Uruchom następujące polecenie, aby włączyć buforowanie referencji:
Użyj również określić wygasanie buforowania
Po włączeniu buforowania referencji będzie ono buforowane przez 7200 sekund (2 godziny) .
Przeczytaj dokumenty uwierzytelniające
źródło
git config credntial.helper store
to niebezpieczne polecenie nie jest odpowiedzialne za przechowywanie referencji w postaci zwykłego tekstu w pliku ~ / .git-credentials? Myślę (i z mojego doświadczenia), że ... pamięć podręczna ... - jest wystarczająca:git config --clogal credential.helper 'cache --timeout 7200'
tworzy~/.git-credential-cache
katalog : z plikiem pamięci podręcznej Więc po prostu wykonaj to polecenie, a NIE polecenie "... przechowuj"Dodaj nowe klucze SSH zgodnie z opisem w tym artykule na GitHub .
Jeśli Git nadal prosi o nazwę użytkownika i hasło, spróbuj zmienić
https://github.com/
na[email protected]:
zdalny adres URL:źródło
git config remote.origin.url "ssh://git@yourRepoHost/yourRepoName.git"
Najłatwiej znalazłem to polecenie:
Działa to dla poszczególnych witryn i modyfikuje globalną konfigurację git.
Aby zobaczyć zmiany, użyj:
źródło
Jeśli używasz https zamiast ssh, możesz edytować „url” w,
.git/config
jak mówi user701648, ale jeśli chcesz, możesz również dodać hasło:źródło
@
zawarte w moim haśle?url = https://username:abc@[email protected]
Daje mi to błąd, żeCould not resolve host: @[email protected]
username
Część wydaje się być ignorowane, gdy przekierowania serwera (na przykład z FOO do FOO.git).Możesz ustawić swoją nazwę użytkownika dla wszystkich repozytoriów w danej witrynie, umieszczając coś takiego jak poniżej w pliku konfiguracyjnym Git. Będziesz chciał zmienić „ https://example.com ” i „ja” na rzeczywisty adres URL i rzeczywistą nazwę użytkownika.
(To bezpośrednio z „poświadczeń pomocy git”)
źródło
Zmiana sklonowanego repozytorium działa:
Korzystanie z poświadczeń w pamięci podręcznej działa, a ustawienie limitu czasu sprawia, że rzeczy są mniej denerwujące. Jeśli używasz pomocnika poświadczeń systemu Windows, powinna to być najłatwiejsza metoda (szczególnie jeśli SSH jest zablokowany).
źródło
Upewnij się, że używasz SSH zamiast http. Sprawdź tę odpowiedź SO.
źródło
http
ponieważ na moim uniwersyteciessh
jest zablokowany przez dział sys-admin.git config --global cache credential.helper
źródło
Oprócz odpowiedzi user701648 można przechowywać poświadczenia w folderze domowym (globalnym dla wszystkich projektów) zamiast w folderze projektu za pomocą następującego polecenia
źródło
Kiedy tylko git pull, git pull origin xxx, git prosi o podanie nazwy użytkownika i hasła.
to działa.
źródło
Najłatwiejszym sposobem jest utworzenie
~/.netrc
pliku o następującej treści:(jak pokazano tutaj: https://gist.github.com/ahoward/2885020 )
Możesz nawet zamknąć uprawnienia do tego pliku, aby nikt nie mógł odczytać Twojego hasła, wpisując:
źródło
Jeśli używasz wersji SSH , nie będziesz mieć żadnych problemów z hasłami. Tylko jeden raz wygenerujesz klucz SSH , aby powiedzieć git, że ten komputer będzie działał z tym kontem github i nigdy więcej nie pytaj mnie o dostęp (dla tego komputera).
Jak wygenerować SSH dla Github
źródło
Aby uniknąć wpisywania nazwy użytkownika, ale nadal pojawia się monit o podanie hasła, możesz po prostu sklonować swoje repozytorium, w tym nazwę użytkownika:
źródło
$ git config credential.helper store
$ git push / push https://github.com/xxx.git
Następnie wprowadź swoją nazwę użytkownika i hasło.
źródło
git push/push https://github.com/xxx.git
powinno tak byćgit push https://github.com/xxx.git
ssh
+key authentication
jest bardziej niezawodnym sposobem niżhttps
+credential.helper
Możesz skonfigurować używanie SSH zamiast HTTPS dla wszystkich repozytoriów w następujący sposób:
url.<base>.insteadOf
jest tutaj udokumentowane .źródło
Szybka metoda
uzyskaj adres URL swojego gita, gdy jesteś w pracy reż:
następnie :
zapyta raz nazwę użytkownika i hasło
gotowy.
źródło
Możesz po prostu biec
po zainstalowaniu i zalogowaniu się do GIT dla systemu Windows w systemie.
źródło
(Tylko dla Mac OS)
w systemach Windows i Linux zapoznaj się z linkiem do dokumentacji Github wymienionym poniżej.
Z dokumentacji Github: Link do dokumentacji
Buforowanie hasła do GitHub w Git
Aby korzystać z pomocnika poświadczeń osxkeychain, potrzebujesz Git 1.7.10 lub nowszej wersji.
aby dowiedzieć się, że pomocnik osxkeychain jest już zainstalowany:
jeśli otrzymasz następującą odpowiedź, oznacza to, że masz już zainstalowany i gotowy do użycia na komputerze Mac:
jeśli nie otrzymasz odpowiedzi, jak pokazano powyżej, możesz ją zainstalować, uruchamiając następujące polecenie:
aby powiedzieć gitowi, aby globalnie używał osxkeychain dla poświadczeń git:
Zostanie wyświetlony monit, zanim zapisze poświadczenia w pęku kluczy .
źródło