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:

  1. Dodaj zmiany w pliku README tak aby był on poprawnie wyświetlany na GitLabie
  2. Jeśli nie wiesz co zmienić wczytaj się w akapit Edytujemy README.md z tej lekcji 😀
  3. Opis commita może być np. taki: Fix improper md syntax for GitLab
  4. Skorzystaj z opcji Commit and Push
  5. Wyświetl diffa zmian które wejdą do zewnętrznego repozytorium przed Push
  6. Wykonaj push
  7. 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 😀

4 komentarze

  1. Hej, wykonaliśmy 9 commitów a umnie na gitlab w Project information wyświetla 6 natomiast u ciebie 7 pomimo iż gdy wejdziesz w zakładkę 7 Commits zobaczysz wszystkie wykonane kommity i zastanawia mnie tu czy mam jakąś opcje nie zaznaczoną w gitlab ?

    Avatar Andrzej S
    1. Hej Andrzej!
      Myślę, że algorytm zliczania commitów może się odrobinę różnić w zależności od tego jak jest brany pod uwagę commit inicjalizacyjny repozytorium (ten pierwszy).

      Jeśli masz 9 commitów lokalnie i wszystkie wypchnięte do repozytorium to zdecydowanie powinno ich być tyle samo na GitLab.

      Zweryfikuj, których commitów brakuje na GitLab i jak to u Ciebie wygląda lokalnie.

      Przemek Przemek
  2. 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.

    Avatar slawomir
    1. 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.

      1. Przejdź do twojego repozytorium na GitLab. Następnie po lewej odnajdź ustawienia repozytorium na samym dole(Settings).
      2. Dalej w menu po lewej wybierz opcję Repository
      3. Otrzymasz stronę z wieloma opcjami. Przejdź do nagłówka Protected Branches i rozwiń te opcje (Expand)
      4. Na samym dole tego akapitu znajdziesz sekcję z wymienionymi gałęziami chronionymi
      5. Kliknij przycisk Unprotect. A następnie potwierdź OK

      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

      Przemek Barański Przemek Barański

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *