Mam problem z git i moim terminalem.
Oto galeria przedstawiająca mój numer: http://imgur.com/a/6RrEY
Kiedy wypycham zatwierdzenia z mojego terminala, git mówi, że wysyłam je z inną nazwą użytkownika, to jest użytkownik z mojej organizacji (mojej firmy) bez żadnego zatwierdzenia i wygląda na to, że nie należy do nikogo: (sprawdź pierwsze zdjęcie w galerii)
Ale tak się nie dzieje, gdy używam Github dla Maca, w kanale widzę zatwierdzone przez siebie zatwierdzenia.
Problem dotyczy również moich osobistych repozytoriów, mój terminal mówi, że nie mam uprawnień do wypychania zatwierdzeń w tych repozytoriach (co jest oczywiście błędne), ponieważ próbuje wysłać je z tym użytkownikiem: (sprawdź drugie zdjęcie w galerii)
Zgadnij co ? Nie dzieje się tak również w przypadku Github na Maca.
Kilka dni temu zmieniłem komputer na zupełnie nowy, więc zresetowałem cały mój klucz ssh z github i zostawiłem tylko nowy wygenerowany przez Github dla Maca, więc nie sądzę, że jest jakiś ukryty klucz użytkownika duch / ssh gdzieś, ten dysk jest zupełnie nowy: (sprawdź galerię trzecie zdjęcie)
Mój plik .gitconfig jest czysty, są tylko moje dane uwierzytelniające: ( patrz czwarte zdjęcie w galerii)
Naprawdę tego nie rozumiem, pomóż, StackOverflow, jesteś moją jedyną nadzieją.
(Przepraszam za moje słabe umiejętności Gimp i odniesienie do Gwiezdnych Wojen)
EDYCJA: ssh-add -l
pokazuje tylko dobry klucz ssh utworzony przez github dla mac i mam tylko jedno konto github
EDIT2: ssh -T [email protected]
rozpoznaj mnie jako dobrego użytkownika.
EDIT3: Po kilku testach wygląda na to, że mój terminal wykonuje zatwierdzenia z moją nazwą użytkownika, ale wypycha je drugą, Github for Mac zatwierdza i wypycha z dobrą nazwą użytkownika. jedynki).
EDIT4: W osobistym repozytorium git log --pretty="%h %an %ae"
pokazuje moją dobrą nazwę użytkownika
EDIT5: Brak oznak zmiennych środowiskowych, które przesłaniałyby moje poświadczenia w plikuenv
. Nawet jeśli spróbuję ustawić te zmienne z dobrymi poświadczeniami, problem będzie się powtarzał.
EDIT6: Wszystko działa normalnie, jeśli zmuszę użytkownika do wejścia na ścieżkę /.git/config
repozytorium, ale nie sądzę, że to dobra opcja:http://[email protected]/USER/REPO.git
EDIT7: Usunęliśmy użytkownika git, który przekazał mi zmiany, co powoduje kolejny błąd:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
KOŃCOWA EDYCJA: zainstalowałem git z homebrew, git config --global push.default simple
wpisałem i teraz pobiera moje poświadczenia nawet bez wymuszania na użytkowniku. To jest dziwne. Dziękuję wszystkim za pomoc, jesteście wspaniali!
~/.gitconfig
i$project_root/.git/config
pliki. Jedna z tych dwóch jest z pewnością błędnie skonfigurowana dla nazwy użytkownika.~/.gitconfig
jest jasne i tak jest$project_root/.git/config
. W rzeczywistości mam ten problem z każdym projektem osobistym, projekty robocze mogą być wypychane, ponieważ ten inny użytkownik należy do mojej organizacji, która jest właścicielem tych repozytoriów.Odpowiedzi:
Właśnie miałem ten problem w pracy. Wbudowany git, który jest dostarczany z komputerem Mac lub pojawia się po zainstalowaniu xcode buforuje poświadczenia git w pęku kluczy. Rozwiązaniem dla mnie było:
uruchom dostęp do pęku kluczy (uruchom reflektor przez cmd + spację, wpisz pęku kluczy, naciśnij enter)
W pękach kluczy w lewym górnym rogu wybierz „login” W kategorii po lewej wybierz „hasła”
znajdź nazwę „github” i usuń ją.
źródło
seahorse
na Ubuntu.github identyfikuje cię po kluczu ssh, który widzi, a nie przez jakiekolwiek ustawienie z git.
Dlatego musisz upewnić się, że klucz ssh konta służbowego nie znajduje się w twojej bazie kluczy, gdy próbujesz wypchnąć z konta osobistego i odwrotnie.
Służy
ssh-add -l
do określania, które klucze są w twojej pęku kluczy issh-add -d <keyfile>
do usuwania klucza z twojej breloczka, jeśli nie działa, usuń „niechciany” klucz ssh z~/.ssh/config
.źródło
Uwaga: Github nadal będzie identyfikować Twoje zatwierdzenie na podstawie wiadomości e-mail.
źródło
user.email
było ustawione poprawnie. Chciałbym móc pięć razy głosować za.ssh-add -D
ssh-add -l
otrzymuję odpowiedź, która nie pomaga. Wpisuje,4096 SHA256:lotsOfGibberish,about40chars (RSA)
że nie wiem, jak nam te informacje.Pomimo wszystkich wspaniałych opcji oferowanych przez innych użytkowników, jedynym sposobem na naprawienie tego było całkowite przeinstalowanie gita i wpisanie
git config --global push.default simple
tekstu, aby przepisać dobre poświadczenia.źródło
git config --system --unset credential.helper
zadziałało dla mnie, teraz ponownie jestem proszony o podanie moich poświadczeń GitHub i mogę podać poprawny identyfikator użytkownika i hasło.git config --system --unset credential.helper
nie działa na Windows 10 git bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
Używam systemu Windows 10 i dzisiaj miałem ten sam problem. W moim przypadku moje poświadczenia dla innego użytkownika zostały zapisane przez Windows Credential Manager. W ten sposób usuwanie / kasowanie poświadczeń git za pomocą poniższego polecenia,
git config --global --unset credential.helper
nie pomogło. Musiałem ręcznie usunąć wpis w systemie Windows, postępując zgodnie z poniższym sposobem,
Start -> Panel sterowania ---> Konta użytkowników ---> Zarządzaj swoimi poświadczeniami ---> Poświadczenia systemu Windows
Następnie wyszukaj wpis, taki jak git: https://github.com i usuń go. Po tym działa dobrze.
źródło
Imię i nazwisko autora i autora publikacji (które są ważne dla GitHub) pochodzą z:
Jednak, jak wspomniano w
git config
igit commit-tree
, wartości te mogą zostać przesłonięte przez zmienne środowiskowe:Więc sprawdź dokładnie te zmienne.
Ale to powinno być dobre rozwiązanie.
Korzystając z adresu URL https, zawsze określam w nim użytkownika, aby upewnić się, że uwierzytelnianie jest wykonywane przez właściwego użytkownika.
źródło
git config
dane uwierzytelniające są prawidłowe i nie ma żadnych zmiennych środowiskowych ustawionych w moim/username/.bashrc
pliku ...env
wyjście ' '.http://[email protected]/USER/REPO.git
Pierwsze uruchomienie jest tymczasowe
killall ssh-agent
a następnie dodać klucze SSH wygenerowane dla konta, którego chcesz użyćssh-add ~/.ssh/id_4shameer
Pomoże nam to pracować na wielu kontach na githubie, gdy pojawi się błąd typu
ERROR: Permission to user/repo-git.git denied to username.
źródło
killall
The ssh-agent musi być wznowionaeval "$(ssh-agent -s)"
, assh-add
polecenie musi być wykonane zsudo
.Jeśli korzystasz z MAC, przejdź do Keychain Access i usuń wpis użytkownika, dla którego nie chcesz uzyskać dostępu.
źródło
Rozwiązaniem dla mnie było dodanie wpisu w moim pliku ~ / .ssh / config dla github. Musiałem to zrobić, ponieważ:
Wpis, który dodałem, to:
Stworzyłem nowy klucz, unikalny dla mojego konta, jako id_rsa_waterproofpatch. Ten wpis w mojej konfiguracji ssh określa, że dla połączeń z github.com chcę przedstawić ten klucz.
Innym rozwiązaniem prawdopodobnie byłoby zalogowanie się na inne konto, usunięcie zduplikowanego klucza ssh.
źródło
Miałem podobny problem i okazało się, że problemem był fakt, że plik klucza publicznego zawierał mój adres e-mail w ostatniej linii. Wydawało się, że przesłania to ustawienie użytkownika w mojej konfiguracji. Gdy tylko usunąłem mój e-mail z pliku .pub (i ponownie załadowałem do mojego repozytorium), Git połączył się przy użyciu właściwego użytkownika.
źródło
Udało mi się użyć adresu URL https repozytorium Github zamiast adresu URL ssh . Poszedłem na stronę projektu Github i skopiowałem adres URL https do mojego schowka, a następnie wkleiłem go do drugiego polecenia poniżej:
źródło
Co za wrzód na tyłku!
problem:
obraca się z nieznanego powodu git push używa niewłaściwego użytkownika. Mam kilka różnych identyfikatorów użytkowników git hub. Pracuję dla 2 różnych firm i mam też legitymację studencką
Pracuję na komputerze Mac. oto co w końcu zrobiłem
1) usuń plik credential.helper
za. musisz dowiedzieć się, gdzie jest skonfigurowany plik credential.helper
b. Po znalezieniu odpowiedniego pliku fig usuń go w następujący sposób
Teraz w moim lokalnym repozytorium zhakowałem plik .git / config
Zmieniłam
do
źródło
W moim konkretnym przypadku problemem było to, że korzystałem
.netrc
z dostępugithub.com
i został skonfigurowany z tokenem od innego użytkownika:źródło
wyczyszczenie pęku kluczy nie pomogło ... Musiałem
ssh-add -D
dodać klucz ponownie za pomocąssh-add <keyfile>
źródło
Rozwiązałem ten problem, usuwając (lub zmieniając nazwę na * .bak) plików id_rsa i id_rsa.pub na MacOS High Sierra. Pomysł stąd .
Mam niestandardowe przekierowania hosta w ~ / .ssh / config, które powinny zostać zastosowane, ale użyłem niewłaściwego użytkownika, zanim zmienię nazwy dwóch plików ...
źródło
To właśnie zadziałało dla mnie:
źródło
Co zadziałało, gdy usunąłem repozytorium i dodałem je ponownie:
źródło
Mam ten sam problem w systemie Windows10 nawet po odinstalowaniu mojego gita, ponieważ @ user542833 mówi, że dzieje się tak, ponieważ pamięć podręczna systemu Windows i powinieneś usunąć poświadczenia Github w swoich oknach,
Credential Manager
a gdy ponownie spróbujesz wypchnąć, Windows zapyta o twoje dane i ustaw je ponownieźródło
Właśnie spędziłem 6 godzin na zastanawianiu się nad tym, próbując przesłać do nowego repozytorium stron GitHub na nowym koncie.
Nawet po ustawieniu konfiguracji user.name i user.email będzie to domyślnie moje główne konto.
Dzieje się tak, ponieważ klucz ssh będzie domyślnie ustawiony na id_rsa (moje główne konto).
Aby skorzystać z nowego konta musiałem uruchomić:
ssh-add ~/.ssh/my_new_key
co spowoduje, że git użyje nowego klucza podczas wypychania.
źródło