Czy istnieje sposób na buforowanie poświadczeń GitHub dla pchania commitów?
Niedawno przełączyłem się na synchronizację moich repozytoriów do https:/ / na GitHub (z powodu problemów z zaporą ogniową) i za każdym razem prosi o hasło.
Czy istnieje sposób na buforowanie poświadczeń, zamiast uwierzytelniania za każdym razem, że git push
?
24 answers
Z Git w wersji 1.7.9 i nowszej
Od wersji Git 1.7.9 (wydanej pod koniec stycznia 2012), w Git istnieje zgrabny mechanizm, który pozwala uniknąć konieczności wpisywania hasła przez cały czas dla HTTP / HTTPS, zwany pomocnikami uwierzytelniającymi. (Podziękowania dla dazonic za wskazanie tej nowej funkcji w komentarzach poniżej.)
W Git 1.7.9 lub nowszym, możesz po prostu użyć jednego z następujących helperów poświadczeń:
git config --global credential.helper cache
... który mówi Git, aby Twoje hasło było buforowane w pamięć (domyślnie) 15 minut. Możesz ustawić dłuższy timeout za pomocą:
git config --global credential.helper "cache --timeout=3600"
(ten przykład został zasugerowany na stronie pomocy GitHub dla Linuksa .) Możesz również przechowywać swoje dane uwierzytelniające na stałe, jeśli chcesz, zobacz inne Odpowiedzi poniżej.
Pomoc Githuba sugeruje również , że jeśli korzystasz z Mac OS X i używasz Homebrew do instalacji Gita, możesz użyć natywnego klucza Mac OS X:
git config --global credential.helper osxkeychain
Dla Windows istnieje helper o nazwie W przeciwieństwie do innych systemów Windows, git Credential Manager może być używany w systemach Windows.
git config --global credential.helper wincred # obsolete
[26]}Z Git dla Windows 2.7.3+ (Marzec 2016):
git config --global credential.helper manager
Dla Linuksa , można by użyć (w 2011) gnome-keyring
(lub inne implementacje keyringu, takie jak KWallet).
Fedora
sudo dnf install git-credential-libsecret
git config --global credential.helper /usr/libexec/git-core/git-credential-libsecret
Ubuntu
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Z wersjami Git przed 1.7.9
Z wersjami Git przed 1.7.9, to więcej opcja Bezpieczna nie jest dostępna i musisz zmienić adres URL, którego używa twój pilot origin
, aby dołączyć hasło w ten sposób: [31]}
https://you:[email protected]/you/example.git
... innymi słowy z :password
po nazwie użytkownika i przed @
.
origin
za pomocą:
git config remote.origin.url https://you:[email protected]/you/example.git
Upewnij się, że używasz https
, i powinieneś mieć świadomość, że jeśli to zrobisz, Twoje hasło GitHub zostanie zapisane w zwykłym tekście w katalogu .git
, co jest oczywiście niepożądane.
Z dowolną wersją Git (dobrze, od wersji 0.99)
Alternatywnym podejściem jest umieszczenie nazwy użytkownika i hasła w pliku ~/.netrc
, chociaż, podobnie jak w przypadku przechowywania hasła w zdalnym adresie URL, oznacza to, że hasło będzie przechowywane na dysku w postaci zwykłego tekstu, a tym samym jest mniej bezpieczne i nie zalecane. Jednak, jeśli chcesz skorzystać z tego podejścia, dodaj następującą linię do ~/.netrc
:
machine <hostname> login <username> password <password>
... zastąpienie <hostname>
nazwą hosta serwera, oraz <username>
i <password>
z Twoją nazwą użytkownika i hasłem. Pamiętaj również, aby ustawić restrykcyjne Uprawnienia systemu plików dla tego pliku:
chmod 600 ~/.netrc
Zauważ, że w systemie Windows Plik ten powinien być wywołany _netrc
i może być konieczne zdefiniowanie zmiennej środowiskowej % HOME% - więcej szczegółów można znaleźć w:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-30 20:03:06
Możesz również poprosić Git o stałe zapisanie Twoich danych uwierzytelniających, używając:
git config credential.helper store
Uwaga: Podczas gdy jest to wygodne, Git będzie przechowywać Twoje poświadczenia w czystym tekście w plik lokalny (.Git-credentials) w katalogu twojego projektu (zobacz poniżej katalog" home"). Jeśli ci się to nie podoba, usuń ten plik i przełącz na korzystanie z opcja cache.
Jeśli chcesz, aby Git ponownie poprosił Cię o poświadczenia za każdym razem, gdy potrzebuje podłączyć do zdalnego repozytorium, można uruchomić to polecenie:
git config --unset credential.helper
Aby przechowywać hasła w .git-credentials
w katalogu %HOME%
w przeciwieństwie do katalogu projektu: użyj znacznika --global
git config --global credential.helper store
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-18 20:15:43
TLDR; użyj zaszyfrowanego pliku netrc z Git 1.8.3 + .
Zapisywanie hasła do repozytorium Git HTTPS URL jest możliwe za pomocą ~/.netrc
(Unix) lub %HOME%/_netrc
(zwróć uwagę na _
) w systemie Windows.
Ale: ten plik przechowywałby Twoje hasło w zwykłym tekście.
Rozwiązanie : Zaszyfruj ten plik za pomocą GPG (GNU Privacy Guard) i spraw, aby Git odszyfrował go za każdym razem, gdy potrzebuje hasła (dla push
/pull
/fetch
/clone
operacji).
Uwaga: w Git 2.18 (Q2 2018) możesz teraz dostosować GPG używane do odszyfrowania zaszyfrowanego pliku .netrc
.
Zobacz commit 786ef50, w 2018 roku, po raz pierwszy w historii, został wybrany do Izby Gmin.
(dodany przez Junio C Hamano -- gitster
-- W commit 017b7c5 , 30 maja 2018)
git-credential-netrc
: acceptgpg
opcja
git-credential-netrc
został zakodowany na twardo, aby odszyfrować za pomocą "gpg
" niezależnie od gpg.opcja programu.
Jest to problem na dystrybucjach takich jak Debian, które nazywają nowoczesne GnuPG czymś innym, jak 'gpg2
'
Instrukcje krok po kroku Dla Windows
Z Windows:
(Git ma gpg.exe
w swojej dystrybucji, ale używając pełnej instalacji GPG zawiera gpg-agent.exe
, która zapamięta Twoje hasło powiązane z Twoim kluczem GPG.)
-
Zainstaluj
gpg4Win Lite
, minimalny interfejs wiersza poleceń gnupg (weź najnowszegpg4win-vanilla-2.X.Y-betaZZ.exe
), i uzupełnij swoją ścieżkę za pomocą katalogu instalacyjnego GPG:set PATH=%PATH%:C:\path\to\gpg copy C:\path\to\gpg\gpg2.exe C:\path\to\gpg\gpg.exe
(zwróć uwagę na polecenie ' copy
': Git będzie potrzebował skryptu Bash do wykonania polecenia ' gpg
'. Ponieważ gpg4win-vanilla-2
pochodzi z gpg2.exe
, musisz go zduplikować.)
-
Tworzenie lub importowanie klucza GPG i zaufanie do niego:]}
gpgp --import aKey # or gpg --gen-key
(upewnij się, aby umieścić hasło do tego klucza.)
-
Zainstaluj skrypt credential helper w katalogu w twoim
%PATH%
:cd c:\a\fodler\in\your\path curl -o c:\prgs\bin\git-credential-netrc https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc.perl
(Uwaga: zmiana nazwy skryptu w Git 2.25.x / 2.26, patrz niżej)
(tak, jest to skrypt Bash, ale będzie działał na Windows, ponieważ będzie wywoływany przez Git.)
-
Utwórz plik _netrc w czystym tekście
machine a_server.corp.com login a_login password a_password protocol https machine a_server2.corp.com login a_login2 password a_password2 protocol https
(nie zapomnij o części " protocol
": "http
" lub "https
" w zależności od adresu URL użyj.)
-
Zaszyfruj ten plik:
gpg -e -r a_recipient _netrc
(możesz teraz usunąć plik _netrc
, zachowując tylko _netrc.gpg
zaszyfrowany.)
-
Użyj tego zaszyfrowanego pliku:
git config --local credential.helper "netrc -f C:/path/to/_netrc.gpg -v"
(zwróć uwagę na '/
': C:\path\to...
to by nie zadziałało.) (Możesz użyć na początku -v -d
, aby zobaczyć, co się dzieje.)
Od tej pory każde polecenie Git używające adresu URL HTTP (S), które wymaga uwierzytelnienia, odszyfruje ten plik _netrc.gpg
i użyj loginu / hasła powiązanego z serwerem, z którym się kontaktujesz.
Po raz pierwszy GPG poprosi Cię o hasło Twojego klucza GPG, aby odszyfrować plik.
Innym razem, gpg-agent uruchomiony automatycznie przez pierwsze wywołanie GPG dostarczy hasło dla Ciebie.
W ten sposób możesz zapamiętać kilka adresów URL/loginów/haseł w jednym pliku i zapisać je na dysku zaszyfrowanym.
Uważam, że jest to wygodniejsze niż" cache "helper", gdzie trzeba aby zapamiętać i wpisać (raz na sesję) inne hasło dla każdej z usług zdalnych, aby hasło było buforowane w pamięci.
W Git 2.26 (Q1 2020), przykładowy Pomocnik uwierzytelniania dla użycia .netrc
został zaktualizowany do działania po wyjęciu z pudełka. Zobacz patch/dyskusja .
Zobacz commit 6579d93, sprawdź 1c78c78 (20 Dec 2019) przez Denton Liu (Denton-L
).
(dodany przez Junio C Hamano -- gitster
-- W commit 1fd27f8 , 25 gru 2019)
contrib/credential/netrc
: makePERL_PATH
konfigurowalnypodpisane przez: Denton Liu
Ścieżka shebang dla interpretera Perla w
git-credential-netrc
została zakodowana na twardo.
Jednak niektórzy użytkownicy mogą go znaleźć w innym miejscu, a zatem musieliby ręcznie edytować skrypt.Dodaj prefiks
.perl
do skryptu oznaczający go jako szablon i zignoruj wygenerowany wersja.
RozszerzaMakefile
tak, aby generowałgit-credential-netrc
zgit-credential-netrc.perl
, tak jak inne skrypty Perla.Receptury Makefile zostały bezwstydnie skradzione
contrib/mw-to-git/Makefile
.
I:
Z 2.26 (Q1 2020), przykładowy Pomocnik poświadczenia do użycia .netrc został zaktualizowany do pracy po wyjęciu z pudełka.
Zobacz commit 6579d93, sprawdź 1c78c78 (20 Dec 2019) przez Denton Liu (Denton-L
).
(dodany przez Junio C Hamano -- gitster
-- in commit 1fd27f8, 25 Dec 2019)
contrib/credential/netrc
: praca poza repopodpisane przez: Denton Liu
Obecnie
git-credential-netrc
nie działa poza repozytorium git. To nie powiedzie się z następującym błędem:fatal: Not a git repository: . at /usr/share/perl5/Git.pm line 214.
Nie ma jednak prawdziwego powodu, dla którego musi być w repozytorium. Pomocnicy poświadczeń powinni być w stanie działać dobrze również poza repozytorium.
Call nie-samodzielna wersja
config()
tak, żegit-credential-netrc
nie musi być już uruchamiana w repozytorium.
Jeff King (peff
) dodaje:
Zakładam, że używasz szyfrowanego gpg
netrc
(jeśli nie, powinieneś wystarczy użyćcredential-store
).
Dla hasła "tylko do odczytu" znajduję kombinacjępass
z takim configiem jest trochę ładniej:[credential "https://github.com"] username = peff helper = "!f() { test $1 = get && echo password=`pass github/oauth`; }; f"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-26 05:06:12
Skorzystaj ze sklepu poświadczeń.
Dla Git 2.11 + na OS X i Linux, użyj Git ' s built in credential store :
git config --global credential.helper libsecret
Dla msysgit 1.7.9 + na Windows :
git config --global credential.helper wincred
Dla Git 1.7.9 + na OS X użyj:
git config --global credential.helper osxkeychain
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-30 09:21:32
Istnieje łatwy, staromodny sposób przechowywania danych uwierzytelniających użytkownika w adresie URL HTTPS:
https://user:[email protected]/...
Możesz zmienić adres URL za pomocą git remote set-url <remote-repo> <URL>
Oczywistym minusem tego podejścia jest to, że musisz zapisać hasło w zwykłym tekście. Nadal możesz wpisać nazwę użytkownika (https://[email protected]/...
), co pozwoli Ci zaoszczędzić przynajmniej połowę kłopotów.
Możesz preferować przełączenie na SSH lub użycie oprogramowania klienta GitHub.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-10 13:47:09
Możesz po prostu użyć
git config credential.helper store
Gdy następnym razem wpiszesz hasło za pomocą pull lub push, zostanie ono zapisane w pliku .Git-poświadczenia jako zwykły tekst(trochę niezabezpieczony, ale po prostu umieść go w chronionym folderze).
I to wszystko, jak zaznaczono na tej stronie:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-17 13:18:40
Wystarczy podać dane logowania jako część adresu URL:
git remote rm origin
git remote add origin https://username:[email protected]/path/to/repo.git
Uwaga: nie polecam tej metody, ale jeśli się spieszysz i nic więcej nie działa, możesz użyć tej metody.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-17 13:14:39
Nie było dla mnie oczywiste, że najpierw muszę pobrać helpera! Znalazłem poświadczenie.helper Pobierz na Atlassian trwale uwierzytelnia się z repozytoriami Git .
cytat:
Wykonaj następujące kroki, jeśli chcesz używać Git z buforowaniem poświadczeń na OS X:
Pobierz binarny git-credential-osxkeychain.
Uruchom poniższe polecenie, aby upewnić się, że plik binarny jest wykonywalny:
chmod a+x git-credential-osxkeychain
Umieść go w katalogu /usr/local/bin
.
Uruchom poniższe polecenie:
git config --global credential.helper osxkeychain
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-30 09:07:28
W konfiguracji GNU / Linux, a~/.netrc też działa całkiem nieźle:
$ cat ~/.netrc
machine github.com login lot105 password howsyafather
Może zależeć od tego, które biblioteki sieciowe Git używa do transportuHTTPS .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-09 20:04:53
Dla Windows możesz użyć wtyczki Git Credential Manager (GCM). Obecnie jest on utrzymywany przez Microsoft. Fajną rzeczą jest to, że zapisuje hasło w sklepie poświadczeń systemu Windows, a nie jako zwykły tekst.
Na stronie releases projektu znajduje się instalator. Spowoduje to również zainstalowanie oficjalnej wersji Git dla Windows z wbudowanym menedżerem poświadczeń. Umożliwia dwuskładnikowe uwierzytelnianie dla GitHub (i innych serwerów). Oraz posiada graficzny interfejs do wstępnego logowania.
Dla użytkowników Cygwin (lub użytkowników już używających oficjalnego Gita Dla Windows), możesz wybrać ręczną instalację. Pobierz pakiet zip ze strony releases . Rozpakuj pakiet, a następnie uruchom plik install.cmd
. Zostanie ona zainstalowana w Twoim folderze ~/bin
. (Upewnij się, że katalog ~/bin
znajduje się w twojej ścieżce.) Następnie konfigurujesz go za pomocą tego polecenia:
git config --global credential.helper manager
Git uruchomi git-credential-manager.exe
podczas uwierzytelniania na dowolnym serwerze.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-30 09:14:04
OAuth
Możesz stworzyć swój własny osobisty token API (OAuth) i używaj go w taki sam sposób, w jaki używasz normalnych danych uwierzytelniających (at: /settings/tokens
). Na przykład:
git remote add fork https://[email protected]/foo/bar
git push fork
.netrc
Inną metodą jest skonfigurowanie użytkownika/hasła w ~/.netrc
(_netrc
na Windows), np.
machine github.com
login USERNAME
password PASSWORD
Dla HTTPS, dodaj dodatkową linię:
protocol https
A credential helper
Do buforuj swoje hasło GitHub w Git podczas korzystania z HTTPS, możesz użyć Pomocnik uwierzytelniający aby Git zapamiętał Twoją nazwę Użytkownika i hasło na GitHub za każdym razem, gdy rozmawia z GitHub.
- Mac:
git config --global credential.helper osxkeychain
(osxkeychain helper
jest wymagane), - Windows:
git config --global credential.helper wincred
- Linux i inne:
git config --global credential.helper cache
Powiązane:
- Jak zapisać hasło https GitHub w Linuksie w pęku kluczy terminala?
- Jak mam się upewnić, że Git nie pyta mnie o moją nazwę Użytkownika GitHub i hasło?
- Skonfiguruj klientów Git, takich jak GitHub dla Windows, aby nie pytali o uwierzytelnianie
- W przypadku, gdy użytkownik nie jest w stanie uzyskać dostępu do danych, nie jest w stanie uzyskać dostępu do tych danych.]}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-08 16:49:47
Jeśli nie chcesz przechowywać hasła w postaci zwykłego tekstu, jak powiedział Mark, możesz użyć innego adresu URL GitHub do pobierania niż do pchania. W pliku konfiguracyjnym, Pod [remote "origin"]
:
url = git://github.com/you/projectName.git
pushurl = [email protected]:you/projectName.git
Nadal będzie pytał o hasło, gdy naciskasz, ale nie kiedy pobierasz, przynajmniej w przypadku projektów open source.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-30 09:05:27
Po sklonowaniu repozytorium repo
możesz edytować repo/.git/config
i dodać konfigurację jak poniżej:
[user]
name = you_name
password = you_password
[credential]
helper = store
Wtedy nie zostaniesz poproszony o username
i password
ponownie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-17 13:19:13
Możesz użyć pomocników poświadczeń.
git config --global credential.helper 'cache --timeout=x'
Gdzie x
jest liczbą sekund.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-09 16:00:35
Wiem, że nie jest to bezpieczne rozwiązanie, ale czasami potrzebujesz tylko prostego rozwiązania-bez instalowania czegokolwiek innego. A ponieważ helper = store nie działa dla mnie, stworzyłem atrapę helpera:
Utwórz skrypt i umieść go w folderze users bin o nazwie credfake , ten skrypt poda Twoją nazwę użytkownika i hasło:
#!/bin/bash
while read line
do
echo "$line"
done < "/dev/stdin"
echo username=mahuser
echo password=MahSecret12345
Make it executable:
chmod u+x /home/mahuser/bin/credfake
Następnie skonfiguruj go w git:
git config --global credential.helper /home/mahuser/bin/credfake
(lub użyj go bez -- global dla tylko jeden repo)
I - voilá-git użyje tego użytkownika + hasło.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-18 14:47:32
Token uwierzytelniania powinien być używany zamiast hasła do konta. Przejdź do GitHub settings/applications, a następnie utwórz osobisty token dostępu. Token może być używany w ten sam sposób, w jaki używane jest hasło.
Token ma pozwolić użytkownikom nie używać hasła do konta w pracy nad projektem. Używaj hasła tylko podczas prac administracyjnych, takich jak tworzenie nowych tokenów lub odwoływanie starych tokenów.
Zamiast tokenu lub hasła, które dają użytkownikowi pełny dostęp do Githuba konto, klucz wdrożenia specyficzny dla projektu może być użyty do przyznania dostępu do pojedynczego repozytorium projektu. Projekt Git może być skonfigurowany tak, aby używać tego innego klucza w następujących krokach, gdy nadal możesz uzyskać dostęp do innych kont Git lub projektów z normalnym poświadczeniem:
- zapisanie pliku konfiguracyjnego SSH, który zawiera
Host
,IdentityFile
dla klucza wdrożenia, możeUserKnownHostsFile
, a możeUser
(choć myślę, że go nie potrzebujesz). - napisz skrypt powłoki SSH wrapper to praktycznie jest
ssh -F /path/to/your/config $*
- Prepend
GIT_SSH=/path/to/your/wrapper
przed twoim zwykłym poleceniem Git. Tutajgit remote
(origin) musi używać formatu[email protected]:user/project.git
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-09 20:20:56
Lepiej jest użyć poświadczeń dla bezpieczeństwa, ale można je zachować przez jakiś czas za pomocą pamięci podręcznej:
git config --global credential.helper cache
git config credential.helper 'cache --timeout=3600'
Twoje dane uwierzytelniające zostaną zapisane na 3600 sekund.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-30 09:17:30
Zazwyczaj masz zdalny URL, coś takiego,
git remote -v
origin https://gitlab.com/username/Repo.git (fetch)
origin https://gitlab.com/username/Repo.git (push)
Jeśli chcesz pominąć nazwę użytkownika i hasło podczas korzystania z git push
, Spróbuj tego:
git remote set-url origin https://username:[email protected]/username/Repo.git
Właśnie dodałem ten sam adres URL (z danymi użytkownika, w tym hasłem) do origin.
Uwaga: nie działa, jeśli nazwa użytkownika jest identyfikatorem e-mail.
git remote -v
origin https://username:[email protected]/username/Repo.git (fetch)
origin https://username:[email protected]/username/Repo.git (push)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-17 13:48:31
Jest trochę inaczej, jeśli używasz uwierzytelniania dwuskładnikowego tak jak ja. Ponieważ nie znalazłem dobrej odpowiedzi gdzie indziej, wsadzę jedną tutaj, żeby być może później ją znaleźć.
Jeśli używasz uwierzytelniania dwuskładnikowego, podanie nazwy użytkownika/hasła nawet nie zadziała - otrzymasz odmowę dostępu. Ale możesz użyć tokena dostępu do aplikacji i użyć pomocnika poświadczeń Git do buforowania tego za Ciebie. Oto odnośne linki:
- Ustawianie command-line to work with 2-factor auth (wyszukaj sekcję zatytułowaną " Jak to działa dla Git-a z linii poleceń?")
- cachowanie poświadczeń
I nie pamiętam, gdzie to widziałem, ale gdy zostaniesz poproszony o nazwę użytkownika-to tam przyklejasz token dostępu do aplikacji. Następnie pozostaw hasło puste. Zadziałało na moim Macu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-09 20:25:28
To działa dla mnie używam Windows 10
git config --global credential.helper wincred
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 19:05:37
Dostałem odpowiedź od strona podręcznika gitcredentials(7) . W moim przypadku nie mam credential-cache w instalacji systemu Windows; używam credential-store.
Po użyciu credential-store, nazwa użytkownika / Hasło są przechowywane w folderze [user]/.plik Git-credities. Aby usunąć nazwę użytkownika/hasło, po prostu usuń zawartość pliku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-09 20:13:28
Edytujesz również plik bashrc i dodajesz do niego skrypt.
To zapyta o Twoje hasło raz, gdy uruchomisz Gita, a następnie zapamięta je, dopóki się nie wylogujesz.
SSH_ENV=$HOME/.ssh/environment
# Start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# Spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-30 09:28:04
Dokumentacja composera wspomina , że możesz uniemożliwić mu korzystanie z GitHub API, tak aby działał jak git clone
:
Jeśli ustawisz klucz
no-api
natrue
w repozytorium GitHub, sklonuje ono repozytorium tak, jak w przypadku każdego innego repozytorium GitHub, zamiast używać GitHub API. Ale w przeciwieństwie do bezpośredniego używania sterownikagit
, composer nadal będzie próbował użyć plików zip Githuba.
Więc sekcja wyglądałaby tak:
"repositories": [
{
"type": "vcs",
"no-api": true,
"url": "https://github.com/your/repo"
}
],
Pamiętaj że API istnieje nie bez powodu. Tak więc powinna to być metoda ostateczności w odniesieniu do zwiększonego obciążenia na github.com.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-09 20:22:14
Jeśli używasz osxkeychain
i wygasł token i chcesz go zaktualizować, wykonaj następujące kroki:
Uruchom w terminalu, a następnie naciśnij enter dwukrotnie.
git credential-osxkeychain erase
host=github.com
protocol=https
Teraz powinieneś zostać poproszony o podanie nazwy użytkownika/hasła. Jednak czasami wydaje się, że to nie "trwa" i trzeba ponownie wejść.
Jeśli tak, uruchom ponownie komputer. Teraz przy następnym uruchomieniu polecenia git i wpisaniu nazwy użytkownika/hasła, zostanie ono zapisane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-14 01:29:34