Powrót do: Git dla Testerów
Lekcja w wersji wideo
Weryfikacja użytkownika Git
Na początek zabieramy się za sprawdzenie czy wszystko z ustawieniami naszego użytkownika jest w porządku. Zobaczymy czy email i nasza nazwa użytkownika są poprawne i ewentualnie wprowadźmy zmiany.
Szybka weryfikacja
Przy pierwszym commicie w lekcji Użytkownik Git zostaliśmy poproszeni o podanie danych. Wszystko sprowadzało się do wprowadzenia nazwy użytkownika oraz adresu email . Możemy te dane pośrednio podglądać w logach z naszych działań w Git w panelu Version Control w zakładce Log
W historii widzimy nazwę naszego użytkownika. Z prawej strony, w szczegółach commita, w dolnej części mamy już pełny zestaw nazwy i emaila.
Wsparcie PyCharma dla edycji danych użytkownika
Gdy zetknęliśmy się z całkowitym brakiem użytkownika przy pierwszym commicie wtedy PyCharm dzielnie nam w tym pomógł. Niestety nasze IDE samo w sobie nie posiada zaawansowanego wsparcia dla edycji użytkownika Git. Za tą niedogodnością stoi istotny argument.
Git jest narzędziem, które jest dostępne dla wszystkich programów w naszym systemie i posiada ustawienia globalne. Co to oznacza? Wszystkie inne repozytoria na naszej maszynie domyślnie korzystają z tych ustawień. Zmiana w tych ustawieniach będzie wpływać na każde repozytorium więc w sumie nasz PyCharm nie będzie brał za to odpowiedzialności 😀
A co jak będę chciał mieć dwóch różnych użytkowników?
Oczywiście mamy to na uwadze i w jednej z następnych sekcji zajmiemy się tą ciekawą tematyką. Na obecną chwilę zajmiemy się naszym globalnym użytkownikiem.
Wizyta w konsoli
W PyCharmie mamy oczywiście do dyspozycji pełnoprawną konsolę czyli okno do wpisywania poleceń tekstowych dla naszego systemu.
Otwieramy panel Terminal. Zakładka powinna być widoczna na samy dole okna IDE. Jeśli nie ma jej tam użyj skrótu Alt + F12 lub przejdź w górnym menu do opcji: View -> Tool Windows -> Terminal.
Powinien w przybliżeniu wyglądać tak:
Powinno pomóc 🙂
Teraz czas sprawdzić naszego Git użytkownika. Zapytajmy więc o imię poprzez wpisanie polecenia:
git config user.name
Polecenie i odpowiedź dla mojego użytkownika wygląda tak:
C:\Projects\demo_test_git>git config user.name Przemek Barański
Teraz email:
git config user.email
Polecenie i odpowiedź dla mojego użytkownika wygląda tak:
C:\Projects\demo_test_git>git config user.email przemek@jaktestowac.pl
Nie było strasznie, prawda? 😉
Zmiana ustawień globalnych
No i dotarliśmy do punktu kulminacyjnego. Jeśli okazało się, że coś poszło nie tak i źle zapisałeś sobie nazwę użytkownika dla Git, albo chcesz po prostu przećwiczyć taką zmianę, to wykonaj poniższe kroki.
Wpisujemy w konsolę polecenie zmiany ustawień globalnych dla nazwy użytkownika (oczywiście podmień tekst Twoje nowe imię i nazwisko
w poniższym poleceniu 😀 ):
git config --global user.name "Twoje nowe imię i nazwisko"
Dla mnie to wyglądało tak:
git config --global user.name "Przemysław Barański"
Tak, tak – w odpowiedzi dostajemy pustą linię, witaj w świecie konsolowych czarów 😀 Trzeba samodzielnie upewnić się, że zmiany zostały prawidłowo zaaplikowane. Wpisz znane już nam polecenie git config user.name
. Poniżej wynik operacji w moim przypadku:
C:\Projects\demo_test_git>git config user.name Przemysław Barański
Z mailem zrobimy adekwatnie:
git config --global user.email "twój@mail.com"
No i dla mnie operacja zmiany maila wraz z weryfikacją wyglądała tak:
C:\Projects\demo_test_git>git config --global user.email "przemyslaw@jaktestowac.pl" C:\Projects\demo_test_git>git config user.email przemyslaw@jaktestowac.pl
--global
.
Na obecną chwilę jednak tego nie zalecamy. Wszystko po to aby utrzymać spójność zaprezentowanych kroków z kursem.
Praktykujemy zmiany
Wiemy już jak sprawdzić użytkownika dla naszego repozytorium:
git config user.name git config user.email
Wiemy również jak wprowadzić globalne zmiany:
git config --global user.name "Twoje nowe imię i nazwisko" git config --global user.email "twój@mail.com
W tym momencie jesteśmy już w stanie dowolnie ustalić sobie te wartości dla naszego repozytorium. Dlatego też ja wracam do poprzednich nazw, gdyż zmieniłem je tylko w celach naukowych 😀 Jeśli też tak postąpiłeś to teraz jest dobry moment aby ustawić wszystko poprawnie:
C:\Projects\demo_test_git> git config --global user.name "Przemek Barański" C:\Projects\demo_test_git>git config --global user.email "przemek@jaktestowac.pl" C:\Projects\demo_test_git>git config user.name Przemek Barański C:\Projects\demo_test_git>git config user.email przemek@jaktestowac.pl
Lecimy dalej
To była mocna konsolowa rozgrzewka. Wszystko przygotowane, aby zmierzyć się z zewnętrznym repozytorium 😀
Hej, zmieniłem nazwę użytkownika i e-mail globalnie, gdy weryfikuję pojawiają mi się – prawidłowo – nowe dane. Natomiast w konsoli, nad wierszem polecenia, niezmiennie widzę starą nazwę użytkownika (stara nazwa użytkownika@nazwa kompa). Jak to zmienić?
Dopiero się uczę gita, próbowałem różnych rozwiązań, na które się natknąłem na Stackflow, ale nic nie zadziałało. Może dlatego, że robię te rzeczy na oślep, bo jeszcze ich nie rozumiem 😀
Będę bardzo wdzięczny za pomoc!
Hej 😉
Podrzuć nam proszę screena, na którym widnieje ta nazwa użytkownika – wtedy zobaczymy jak to wygląda i jak możemy Ci pomóc 🙂 Możesz nam wysłać maila na adres kontaktowy (z zamazanymi wrażliwymi danymi, adresami etc) 🙂
Dzięki wielkie za chęć pomocy, już wysyłam! 🙂
Hej,
Dokonując zmiany nazwy użytkownika z Bartek na Bartek K i używając polecenia
git config –global user.name otrzymuję taki oto komunikat:
warning: user.name has multiple values
error: cannot overwrite multiple values with a single value
Use a regexp, –add or –replace-all to change user.name.
Natomiast po zastosowaniu polecenia git config –add user.name “Bartek K” udało mi się zmienić nazwę użytkownika.
Jaki może być powód takiej sytuacji?
PyCharm 2020.2 (Community Edition)
Python v3.8
Git v2.27
Pozdrawiam,
Jeszcze trochę się pobawiłem tymi komendami i teraz sprawdzając nazwę użytkowników pokazuje mi:
C:\Projects\demo_test_git>git config user.name
Bartek Koło
C:\Projects\demo_test_git>git config –global user.name
Bartosz
Jak to teraz naprawić, żeby były jednakowe nazwy użytkownika :D?
Dziękuje za odpowiedź i pozdrawiam.
Hej Bartek!
Chyba w konfigu powstały u Ciebie duplikaty:
Sprawdź je poleceniem
git config –global –get-all user.name
Jak dostajesz więcej niż dwóch userów to masz więcej użytkowników globalnych.
Pomysł 1: Zmień ich nazwę
git config –global –replace-all user.email “new@mail.com”
Pomysł 2: wyrzuć któregoś używajac polecenia
git config –global –unset user.name “nazwa użytkownika”
i już standardowo zmieniaj tego co został.
Duże propsy za eksperymentowanie i robienie ćwiczeń – oby tak dalej 💪
Daj znaka czy jest lepiej😉
Udało mi się zminimalizować userów, bo było ich aż sześciu. Natomiast zastanawia mnie jedna kwestia. Używając poniższych poleceń otrzymuje następujące odpowiedzi:
C:\Projects\demo_test_git>git config –get-all user.name
Bartek
Bartek
C:\Projects\demo_test_git>git config –global –get-all user.name
Bartek
C:\Projects\demo_test_git>git config user.name
Bartek
C:\Projects\demo_test_git>git config –global user.name
Bartek
Czy już jest wszystko dobrze?
Pozdrawiam 🙂
Dobra robota!
Przy pracy na maszynie gdzie masz tylko prywatne projekty zalecam posiadanie tylko jednego użytkownika – global. Dużo łatwiej jest się wtedy odnaleźć w strukturze użytkowników😉
Omówmy jeszcze twoje polecenia:
1. Pobierz wszystkich użytkowników
C:\Projects\demo_test_git>git config –-get-all user.name
Bartek
Bartek
2. Pobierz wszystkich globalnych
C:\Projects\demo_test_git>git config –-global –-get-all user.name
Bartek
3. Pobierz użytkownika obecnie używanego
C:\Projects\demo_test_git>git config user.name
Bartek
4. Pobierz użytkownika globalnego
C:\Projects\demo_test_git>git config –-global user.name
Bartek
Tutaj zalecałbym zmianę użytkownika lokalnego aby miał inne imie więc nie mieszałby się z globalnym 😀
Super eksperymenty👏 i ciśnij dalej💪
Witajcie,
mam zagwostkę, przy odpaleniu komendy “git config user.email” i innych z poziomu konsoli wbudowanej w PyCharma dostaję komunikat, mimo, iż git, commity działają:
Nazwa ‘git’ nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne,
program wykonywalny lub plik wsadowy.
Wykonałem tą samą czynność w terminalu Windowsa (cmd) i dostałem odpowiedź.
Coś nie tak wykonałem?
Dzięki za opis tego przypadku – to będzie wartościowa informacja dla innych użytkowników 😀
Pierwsza sugestia jaka mi się nasuwa – zrestartuj PyCharma 😀 (czyli stary indiański sposób: have you tried to turn it off and on again)
Druga sugestia to restart kompa (a co się będziemy ograniczać🤠)
Wyjaśnienie: Generalnie problem braku dostępu do danego pliku wykonywalnego w terminalu PyCharma może wynikać z wielu przyczyn..
Najczęstszą jest to, że po prostu PyCharm nie został zrestartowany po dodaniu oprogramowania do systemu. Nawet powiem więcej, sam Windows może nie wiedzieć o oprogramowaniu gdyż czasem aby wszystko trafiło na swoje miejsce trzeba restartu systemu. Tak więc pomaga tu najprostsza strategia ponownego uruchomienia aplikacji, ewentualnie maszyny..
Napisz czy to pomogło a jak nie to będziemy szukać dalej. No i bardzo dobrze, że użyłeś terminala Windowsowego aby sprawdzić Gita. Dodatkowo ważną informacją z poziomu wiedzy QA będzie czy terminal jest uruchomiony z prawami administratora czy bez bo może to być istotne z punktu dalszego wykrycia nieprawidłowości. (w systemie Windows w cmd wystarczy wpisać w terminal
net session
i jeśli pojawia się wynik z błędem oznacza to, że wykonałeś dane polecenie z poziomu użytkownika a nie administratora)Pozdro i daj znaka czy się udało 😀
Hm.
Zastanawia mnie jedna sprawa. Jeśli wcześniej robiliśmy commity i po iluś interakcjach z projektem zmieniamy swoją nazwę użytkownika, to w jaki sposób dokonuje się porównania czy akurat ten sam użytkownik dokonuje zmian w projekcie? Jest to jakoś wyszczególnione w logach?
W logach widzę starą nazwę użytkownika przy commitach, Jak będę chciał dodać nowy commit to można w opcjach ustawić przypisanie do starej nazwy użytkownika, tak by nie było wątpliwości, że ta sama osoba dokonała zmian?
Możliwe, że temat będzie omówiony w kolejnej lekcji, ale wolę spytać teraz zanim mi to umknie :).
Zadałeś bardzo dobre pytanie a właściwie kilka pytań.
1. Jeśli tylko zmieniłeś autora (np za pomocą użycia opcji Author w oknie Commit Changes czy polecenia –author w konsoli):
Generalnie w logach przy standardowym poleceniu git log zobaczysz tego podmienionego autora. Ale już w GitLab czy w PyCharm (w Version Control -> Log -> okienko detalis z prawej strony u dołu) możesz łatwo podglądnąć, że author i commiter to dwie różne osoby 🙂
Jeśli chodzi o konsolę to można taką informację uzyskać poleceniem git log –format=fuller
2. Jeśli zmieniliśmy nasze dane tak jak jest to pokazane w lekcji to standardowo nie będziemy mieli możliwości weryfikacji czy to są różne czy te same osoby. Powiem więcej problem dość ciekawie się ukazuje gdy commitujemy z różnych maszyn do jednego repo i podamy innego maila to już jesteśmy relatywnie innym użytkownikiem 😀 Drugą ciekawostką jest, że bardzo często w logach pokazana jest jako pierwsza nazwa uzytkownika a tą już bardzo dowolnie się ustala i mamy potem w historii przemek, PrzemekB, pbaranski itd 😀 Trzeba o to dbać przy rozproszonym commitowaniu jako jeden użytkownik
3. Tematem zajmiemy się jeszcze w przyszłości – dzięki za zwrócenie uwagi na to zagadnienie
Podsumowując najlepiej ustawić poprawne dane w samym Git a w przypadkach gdy na chwilę udostępniamy naszą maszynę, ktoś nam pomaga w commicie i to jest de facto jego praca wtedy warto pole author zmienić ale raczej nieczęsto się to stosuje 😀
Jak byś miał więcej pytań śmiało pisz 😀
dzięki wielkie za obszerną odpowiedź :).