Rozpoczęcie pracy z gitflow

Podstawy

    Na samym początku przybliżę Ci wyjaśnienie podstawowych gałęzi w GitFlow:

    • master (lub main) – Zawsze zawiera stabilną wersję kodu, która działa bez błędów i jest gotowa do wdrożenia na produkcję.
    • develop – To jest gałąź, w której pracujesz nad nowymi rzeczami tworząc nowe funkcje oraz testujesz coś nowego, wszystko wtedy ląduje w develop.
    • feature – Na tej gałęzi pracujesz nad wszelką nową funkcjonalnością. Zmiany z niej również lecą na develop.
    • release – Kiedy wszystkie nowe funkcje są gotowe, tworzysz gałąź release, która jest ostatnim momentem przed wypuszczeniem wersji na produkcję. Możesz wykonać tu ostatnie poprawki oraz testy. Po zakończeniu prac, łączysz tę gałąź z master (czyli wysyłasz wersję na produkcję) i z powrotem z develop, celem wyrównania zmian na obu gałęziach.
    • hotfix – W przypadku błędów na produkcji, tworzysz poprawkę z gałęzi master, bo stąd jest kod który działa na produkcji. Po jego naprawie łączysz hotfix, z master (żeby wersja produkcyjna była naprawiona) oraz z develop (żeby te poprawki były też w wersji roboczej).

    Rozpoczęcie pracy z gitflow

    Na samym początku musimy zainicjować w naszym obszarze roboczym obsługę tego naprawdę przydatnego narzędzia po przez wykonanie polecenia:

    git flow init

    Tylko dla tag należy dodać przedrostek: v , pozostałe nazwy gałęzi pozostawiamy domyślne. 


    Proces pracy z GitFlow

    1. Tworzenie Feature

    Służy do utworzenia gałęzi z nową funkcjonalnością. Cechuje się tym że:

    • Jest tworzona z gałęzi develop,
    • Wszelkie zmiany zostaną wprowadzone do gałęzi develop,

    Tworzymy nasz feature po przez:

    git flow feature start name

    W tym momencie możemy wykonać wszelkie prace oraz commity, należy pamiętać by po zakończeniu pracy zamknąć gałąź po przez:

    git flow feature finish name

    Przykłady nazewnictwa naszego "name":

    • feature/login-page – nowa funkcjonalność dotycząca strony logowania,
    • feature/#0001 – numer taska,

    2. Tworzenie Hotfix-ów

      Służy do naprawy krytycznych błędów w wersji produkcyjnej. Cechuje się tym że:

      • Jest tworzony z gałęzi master,
      • Wszelkie zmiany zostaną wprowadzone do gałęzi develop oraz master,

      Tworzymy nasz release po przez:

        git flow hotfix start name

        Po naprawieniu błędu, należy połączyć gałąź hotfix z master i develop:

          git flow hotfix finish name

          Przykłady nazewnictwa naszego "name":

          • hotfix/1.0.1 – szybka naprawa błędu w wersji 1.0.0,
          • hotfix/2.1.1 – naprawa błędu w wersji 2.1.0,
          • hotfix/crash-on-login – jeśli naprawiamy specyficzny problem, np. awarię przy logowaniu,

          3. Wydanie Release

          Służy do przygotowania nowego wydania aplikacji. Cechuje się tym że:

          • Jest tworzona z gałęzi develop,
          • Wszelkie zmiany zostaną wprowadzone do gałęzi develop oraz master,

          Tworzymy i nasz release po przez:

          git flow release start name
          git flow release publish name
          

          W tym momencie możemy przeprowadzić ostateczne testy, poprawki kodu przed wydaniem. Po zakończeniu pracy nad wydaniem, należy połączyć gałąź z master i develop za pomocą:

          git flow release finish name

          Przykłady nazewnictwa naszego "name":

          • release/1.0.0 – pierwsze wydanie aplikacji,
          • release/2.1.0 – nowa wersja z aktualizacjami funkcji,
          • release/3.0.0 – większa wersja aplikacji (np. zmiany w architekturze lub nowy zestaw funkcji),

          Nazywanie commitów

          Z kolei tworzenie samych opisów, bardzo ciekawie opisuje artykuł na highlab.pl/conventional-commits (poniżej mała ściągawka)

          docs: add short circuit to hook example (#665)
          fix(cli): allow argv to be overridden in bootstrap (#621)
          tests(ED-439): add tests for Modal component
          styles: format code with new prettier config

          Jak i samą konwencję:

          feat – nowa funkcjonalność
          fix – poprawka do istniejącej funkcjonalności
          docs – zmiany tylko w dokumentacji
          chore – zmiany które nie mają wpływu z zawartość kodu źródłowego czy testów (np. aktualizacja paczek)
          refactor – zmiany, które nie są zarówno poprawkami jak i nowymi funkcjonalnościami
          tests – wszystko co związane z testami (dodawanie, edycja)
          perf – zmiany w kodzie usprawniające wydajność,
          styles – wszelkiego rodzaju formatorania kodu, białe znaki, przecinki czy brakujące średniki
          ci – zmiany na potrzeby CI (konfigi, skrypty),
          build – zmiany wpływające na proces builda,
          revert – revert ostanich zmian

          Kamil Mirończuk

          I kiedy czegoś gorąco pragniesz, to cały wszechświat sprzyja potajemnie twojemu pragnieniu
          ~Paulo Coelho

          Komentarze

          Zostaw komentarz

          Twój adres mailowy NIE zostanie opublikowany. W razie otrzymania zapytania, otrzymasz na niego odpowiedź.
          Wymagane pola są oznaczone jako *