Powrót do: Git dla Testerów
Lekcja w wersji wideo
Szybki push
Sposób jaki pokazaliśmy na zrobienie push w PyCharmie jest jak najbardziej poprawny ale zazwyczaj możemy skorzystać z innej użytecznej opcji.
Aby zrobić commit potrzebujemy zmian…
Edytujemy README.md
Dodamy w naszym README dodatkowy akapit na temat zewnętrznych platform czyli naszego GitLaba.
Prosty wpis z akapitem oraz tekstem, który jest linkiem do GitLaba odświeży Ci trochę składnię dla samych linków:
##External Platform [GitLab](https://gitlab.com) - repository hosting
Brak spacji po ## jest celowy – zaraz zobaczysz dlaczego 😀
Pushujemy nową drogą
Następnie standardowo klikamy zieloną ikonę ✔ służącą do wywoływania commita. W oknie Commit Changes standardowo wpisujemy porządny opis w polu Commit Message:
Add Platforms heading and item to documentation
No i na koniec… no właśnie. Tym razem nie klikamy w przycisk Commit znajdujący się na dole okna. Klikniemy strzałkę skierowaną w dół (∨
) obok napisu Commit na tym przycisku.
Powinniśmy zobaczyć opcję Commit and Push…. Kliknijmy w nią!
Wywołamy w ten sposób tradycyjną akcję commita i od razu pokaże się znane nam już okno Push Commits. Wystarczy kliknąć Push i po sprawie.
Przejdź do GitLab i zobacz jak wygląda nasz nowy akapit w README 😀 albo raczej 🙁
No i teraz natknęliśmy się na ciekawy przypadek. Silnik do interpretacji plików z rozszerzeniem .md działa odrobinę inaczej na GitLabie. Celowo zasugerowaliśmy brak spacji 😀 Jak widzisz tester ma wszystko na głowie – nawet weryfikację zgodności wyświetlania pliku z poziomu IDE i zewnętrznego repozytorium 😀
Mini Teraz Ty – Ćwiczymy commit and push
Przećwicz akcję commit and push:
- Dodaj zmiany w pliku README tak aby był on poprawnie wyświetlany na GitLabie
- Jeśli nie wiesz co zmienić wczytaj się w akapit Edytujemy README.md z tej lekcji 😀
- Opis commita może być np. taki: Fix improper md syntax for GitLab
- Skorzystaj z opcji Commit and Push
- Wyświetl diffa zmian które wejdą do zewnętrznego repozytorium przed Push
- Wykonaj push
- Zweryfikuj opis naszego repozytorium na GitLabie
Mini Rozwiązanie – Ćwiczymy commit and push
Wystarczyło dodać jedną spację:
## External Platform [GitLab](https://gitlab.com) - repository hosting
Oraz skorzystać z opcji Commit and Push i na GitLabie już wszystko powinno być w porządku 😀
Cześć. Czy można w jakiś sposób edytować commit message po akcji push?
Zarówno skrót F2 nie działa jak również odpowiednia komenda w menu po nienaciśnięciu prawego klawisza myszki.
Hej Sławek,
Generalnie zmiana commit message na zewnętrznym repozytorium to dość kontrowersyjny i, wbrew pozorom, trudny temat. Poniżej opisze jak to zrobić w kontekście tego kursu:
Jeśli jest to ostatni commit to możesz zrobić w konsoli:
git commit --amend -m "New message"
Następnie trzeba zmienić ochronę twojego brancha, czyli mastera (już widać, że to nie jest standardowe działanie), aby taka operacja mogła być wypchnięta na zewnętrzne repozytorium.
Teraz możesz wrócić do konsoli w PyCharmie i wykonać operację wypchnięcia nadpisujących zmian (czyli tej zmiany nazwy którą wykonaliśmy w konsoli). Są to działania, które wypchną cokolwiek masz lokalnie na zewnętrzne repozytorium bez sprawdzenia zgodności danej gałęzi na zewnętrznym repozytorium. Użyj o tego polecenia:
git push --force
Tym samym nadpiszesz commit na zdalnym repozytorium nową nazwą.
Aby ponownie zabezpieczyć branch na GitLabie należy wrócić do ustawień Protected Branches i tam wprowadzić w sekcji Protect Branch:
Branch: master
Allowed to merge: Maintainers
Allowed to push: Maintainers
i kliknąć Protect.
Generalnie taki zabieg jest dość niebezpieczny kiedy współdzielisz dane repozytorium (lub branch – w tym przypadku master) z innymi osobami rozwijającymi kod. W szczególności dla głównej gałęzi (master). Jest to właściwie temat na całą osobną sekcję kursu. Tak samo z edycją wpisów innych niż ostatni – dość gruba sprawa i w odpowiednim czasie zajmiemy się i tymi zagadnieniami na jaktestowac.pl 😀
Oczywiście eksperymentuj i testuj.
Pozdrawiam