Przejdź do treści

GIT

Rola Developer/Uczestnik

Developer/Uczestnik to każda osoba, która nie jest Integratorem, a wprowadza zmiany do repozytorium. Jej zadaniem jest tworzenie zmian na osobnych, lokalnych gałęziach oraz ich scalanie z develop w sposób niewywołujący konfliktów.

Aktualizacja lokalnego repozytorium

W celu aktualizacji swojego lokalnego repozytorium należy wykonać poniższą komendę:

git fetch --prune --all --tags

Weryfikacja istniejących gałęzi

W celu sprawdzenia istniejących lokalnie oraz zdalnie gałęzi korzystamy z polecenia:

git branch -a

Trzymamy sie zasady jedna gałąź = jeden feature.

Tworzenie nowej gałęzi

Aby rozpocząć pracę nad aktualizacją/pisaniem artykułu należy utworzyć nową lokalną gałąź. Przed jej stworzeniem należy zaktualizować gałąź wyjściową tak aby jak najbardziej zbliżyć się do zdalnego repozytorium i uniknąć potencjalnych konfliktów scalania.

git fetch --prune --all --tags
git switch develop && git pull
git switch -c <typ>/<nazwa_gałęzi> develop

Korzystaj z nazewnicta:
- feat/<nazwa_gałęzi> - jeśli dodajesz coś nowego co wcześniej nie istniało.
- refactor/<nazwa_gałęzi> - jeśli dokonujesz aktualizacji czegoś co już istnieje.
- fix/<nazwa_gałęzi> - jeśli coś poprawiasz bo wcześniej popełniłeś błąd.

Powyższe komendy tworzą nową gałąź o nazwie <typ>/<nazwa_gałęzi> na podstawie zawartości zaktualizowanej gałęzi develop.

Wprowadzanie zmian

Po wprowadzeniu zmian należy zatwierdzić zmiany za pomocą komend:

git add --all
git commit -m "<typ>[opcjonalny zakres]: <opis zmiany>"

Typy:
- feat - dodanie czegoś nowego
- refactor - aktualizacja czegoś instniejącego
- fix - naprawa czegoś istniejącego

Opcjonalny zakres - Powinien dotyczyć części, którą modyfikujesz.

Biorąc za przykład ten artykuł, staraj się zatwierdzać zmiany w ten sposób:
refactor(gitinstrukcja): update article commit

Pomaga to integratorowi czytać historię repozytorium oraz ewentualnie ją naprawiać.

Istnieje możliwość podejrzenia ostatniego wpisu w repozytorium za pomocą komendy:

git log -1

Wypychanie zmian

Po wprowadzeniu wszystkich zmian na lokalnej gałęzi, trzeba je "wypchnąć" do zdalnego repozytorium. Załóżmy, że jesteś na gałęzi refactor/gitinstrukcja:

git fetch --prune --all --tags
git switch develop && git pull
git merge --no-ff refactor/gitinstrukcja
git branch -d refactor/gitinstrukcja
git push

Wyjaśnienie:
1. Pobierasz wszystkie zmiany ze zdalnego repozytorium.
2. Aktualizujesz gałąź develop, do której będziesz chciał przyłączyć swoje zmiany.
3. Scalasz gałąź, która zawiera twoje zmiany do develop
4. Usuwasz swoją lokalną gałąź, zawierającą twoje już scalone z develop zmiany, nie jest ona potrzebna w zdalnym repozytorium.
5. Wypychasz zmienioną gałąź develop, która zawiera już twoje zmiany do zdalnego repozytorium.

Rola Integrator

Rolą integratora jest scalenie niezawierającej konfliktów scalania gałęzi develop z master lub main oraz utrzymanie master lub main w prawidłowej kondycji. Jego zadaniem jest również tagowanie wersji repozytorium na master lub main.

UWAGA: TYLKO INTEGRATOR powinien dokonywać scalania develop z master lub main.

Integratorem jest Piotr Żukowski.

Zakładając gałąź w nowej konwencji tj. master

git fetch --prune --all --tags
git switch develop && git pull
git branch --no-merged
git switch master && git pull
git merge --no-ff develop
git tag 0.0.0
git push && git push --tags

Wyjaśnienie:
1. Pobierasz wszystkie zmiany ze zdalnego repozytorium.
2. Aktualizujesz gałąź develop.
3. Sprawdzasz czy na repozytorium znajdują się jakieś inne gałęzie, które nie zostały scalone z develop:
- Jeśli pojawiają się jakieś niescalone gałęzie - poproś autorów o scalenie ich z develop oraz usunięcie ich zarówno w ich lokalnym repozytorium (git branch -d typ/nazwa) oraz w zdalnym repozytorium (git push orgin --delete typ/nazwa), a następnie "wypchnięcie" zmienionego develop.
- Po usunięciu niescalonych gałęzi przez ich autorów oraz wypchnięciu zmienionego develop wykonaj ponownie kroki od 1-4.
4. Aktualizujesz gałąź master.
5. Scalasz zaktualizowaną gałąź develop z master.
6. Nadajesz nowy tag repozytorium w konwencji 0.0.0.
7. Wypychasz zmienioną gałąź master wraz z nowym tagiem np: 0.0.0.