2010-10-14 17:17:28 +0000 2010-10-14 17:17:28 +0000
174
174

Jak mogę się upewnić, że Git nie poprosi mnie o moją nazwę użytkownika i hasło do GitHuba?

Pracuję z repo na GitHubie i za każdym razem, gdy próbuję coś wcisnąć, prosi o moją nazwę użytkownika i hasło do GitHuba. Nie chcę tego robić.

Próbowałem instrukcji na ustawienie twojego emaila w Git , mianowicie ustawiłem zmienne Git github.user i github.token, ale to nie zrobiło żadnej różnicy.

Nie rozumiem dlaczego tak się dzieje.

Odpowiedzi (12)

215
215
215
2011-08-08 22:36:29 +0000

Miał dzisiaj podobny problem: Spieprzyłem sprawy w mojej roboczej kopii, więc postanowiłem zmienić nazwę katalogu i ponownie sklonować mój projekt z githuba. Ale po tym wszystkim musiałem podać swoje hasło, aby wykonać każde żądanie pull/push, zamiast wpisywać hasło tylko raz, jak kiedyś.

To dlatego, że dzisiaj użyłem protokołu https do sklonowania projektu! Aby sprawdzić, jakiego protokołu używasz, wystarczy uruchomić

git config -l

i spojrzeć na linię rozpoczynającą się od ‘remote.origin.url’.

Aby zmienić protokoły:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username i your_project należy zastąpić odpowiednią nazwą repozytorium i właścicielem tego repozytorium. Nazwa użytkownika będzie twoja, jeśli jesteś właścicielem repozytorium, lub nazwa użytkownika właściciela repozytorium w innym przypadku.

34
34
34
2010-10-14 17:28:04 +0000

Musisz ustawić ssh-agenta, przeciwko któremu musisz się tylko raz uwierzytelnić. Zobacz ta odpowiedź w SO aby dowiedzieć się jak to zrobić.

31
31
31
2013-12-03 22:40:15 +0000

Jeśli używasz HTTPS zamiast SSH , możesz śledzić to :

  1. Znajdź swój zdalny adres URL (remote.origin.url) z

  2. Twój zdalny adres URL będzie taki jak ten : https://{USERNAME}@github.com/{USERNAME}/{REPONAME}.git

  3. Wykonaj to polecenie :

26
26
26
2014-11-21 04:27:04 +0000

Wolę używać HTTPS, uważam, że jest to łatwiejsze i bezpieczniejsze niż konfigurowanie kluczy ssh.

Używając HTTPS, możesz zapobiec pytaniu git o nazwę użytkownika dla github pilotów z następujących:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

I można przynajmniej zmniejszyć częstotliwość git pyta o hasło z:

git config --global credential.helper 'cache --timeout=28800'

Gdzie 28800 są 8 godzin. Używam tej konfiguracji, aby wprowadzić moje hasło tylko raz, kiedy zaczynam dzień pracy.

Następnie będziesz miał te wpisy wewnątrz swojego ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Źródło: http://git-scm.com/docs/git-credential-cache http://git-scm.com/docs/git-config

6
6
6
2014-02-23 11:54:29 +0000

Jeśli jesteś na Windows używając HTTPS, spróbuj Git Credential Store - użyje Windows Credential Store aby zachować Twoje imię i hasło.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Następnie następnym razem, gdy wprowadzisz swoje imię i hasło, zapamięta je dla Ciebie.

6
6
6
2010-10-14 19:45:54 +0000

Kiedy ustawisz klucz ssh dla githuba, jeśli nie jest to twój domyślny klucz, będziesz musiał dodać sekcję do swojego ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
5
5
5
2013-08-11 03:17:37 +0000

Ponadto, jeśli chcesz być pytany o hasło za każdym razem, ale nie tylko o swoją nazwę użytkownika, to skonfigurować pilota jako HTTPS z nazwą użytkownika. W ten sposób…

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

Następnie za każdym razem zostaniesz poproszony o podanie swojego hasła, ale nie swojej nazwy użytkownika.

Tak wolę, ponieważ lubię być zmuszony do wpisania mojego hasła githubowego przed udostępnieniem światu.

2
2
2
2014-09-25 19:45:49 +0000

Sprawy mają się trochę inaczej, jeśli używasz dwuczynnikowej auth jak ja. Ponieważ nie znalazłem dobrej odpowiedzi gdzie indziej, przykleję ją tutaj, aby móc ją znaleźć później.

Jeśli używasz 2-czynnikowego auth, to podanie nazwy użytkownika/hasła nie zadziała - dostaniesz odmowę dostępu. Możesz jednak użyć tokena dostępu do aplikacji i użyć pomocnika referencyjnego git'a do buforowania tego dla Ciebie. Oto odpowiednie linki:

I nie pamiętam, gdzie to widziałem, ale kiedy jesteś proszony o swoją nazwę użytkownika - tam właśnie trzymasz token dostępu do aplikacji. Następnie zostaw to hasło puste. Zadziałało na moim komputerze Mac.

2
2
2
2016-06-19 21:27:34 +0000

użyj SSH

Aby zapobiec sytuacji, w której GitHub pyta o hasło podczas pchania, najlepiej użyj SSH (git@github.com:...) zamiast HTTPS URL (https://github.com/...) i dodaj klucz SSH do swojego konta GitHub . Zobacz: Którego zdalnego adresu URL powinienem użyć?

a credential helper

W przeciwnym razie, jeśli naprawdę musisz użyć HTTPS, do buforowania hasła do GitHuba w Git , powinieneś użyć a credential helper, aby powiedzieć Gitowi, żeby zapamiętał twoją nazwę użytkownika i hasło za każdym razem, gdy rozmawia z GitHubem.

  • Mac: git config --global credential.helper osxkeychain (wymagane jest osxkeychain helper),
  • Windows: git config --global credential.helper wincred
  • Linux i inne: git config --global credential.helper cache

.netrc

Inną metodą jest użycie konfiguracji użytkownika/hasła w ~/.netrc (_netrc w Windows), e. g.

machine github.com
login USERNAME
password PASSWORD

OAuth

Use OAuth token Personal API token ) to push the changes, e.g.

git push https://4UTHT0KEN@github.com/foo/bar
  • *

Related:

1
1
1
2016-06-05 12:21:50 +0000

Zapytanie o nazwę użytkownika jest dla mnie irytujące, ale zapytanie o hasło jest miłe, ponieważ zapewnia, że naprawdę chcesz się upublicznić ze swoimi zmianami…

Więc po prostu dodaję to do mojego “.gitconfig”

[url "https://myusername@github.com"]
    insteadOf = https://github.com
1
1
1
2016-04-05 14:31:43 +0000

Również jeśli używasz Windows, możesz użyć:

$ git config --global credential.helper wincred

wystarczy, że zalogujesz się jeszcze raz i git będzie pamiętać.

0
0
0
2016-07-07 13:37:29 +0000

Użyj Git Credential Manager for Windows , jeśli jesteś w systemie Windows.

Ten projekt obejmuje :

  • Bezpieczne przechowywanie haseł w Windows Credential Store
  • Wieloczynnikowa obsługa autoryzacji dla Visual Studio Team Services
  • Dwuczynnikowa obsługa autoryzacji dla GitHub
  • Obsługa generowania i użytkowania Personal Access Token dla Visual Studio Team Services i GitHub
  • - Personal Access Token. Obsługa trybu nie-interaktywnego dla usług zespołowych Visual Studio wspieranych przez Azure Directory
  • Uwierzytelnianie Kerberosa dla Team Foundation Server
  • Opcjonalne ustawienia optymalizacji agenta budowy

Po prostu pobierz najnowszą wersję i zainstaluj ją.

Jak używać

Nie robisz tego. It magically works when credentials are needed.