Na przykładzie GIT
Prelegent: Tomasz Banasiak
Systemy kontroli wersji - GIT
Co to jest kontrola wersji?
Systemy kontroli wersji - GIT
Potrzeby stojące za powstaniem CVS
Systemy kontroli wersji - GIT
Rozpoczynamy pracę z GIT
1. Utworzenie własnego repozytorium
git init
2. Pobranie istniejącego repozytorium
git clone git@gitlab:22/devschool/testrepo.git
Systemy kontroli wersji - GIT
Umieszczenie plików w repozytorium
1. Dodanie plików do indeksu
git add . # dodanie wszystkich plików
git add nazwapliku.txt # dodanie konkretnego pliku
git add *.php # dodanie plików wg. maski
2. Zapisanie aktualnej wersji
git commit -m "Dodanie plików tekstowych"
Systemy kontroli wersji - GIT
Synchronizacja danych z GitLabem
1. Pobranie zmian dokonanych przez programistów
git pull origin master # Pobranie gałęzi master z głównego repozytorium
git pull ssh://git@gitlab:22 develop # Pobranie gałęzi develop z zadanego repozytorium
git remote add piotrek ssh://192.168.0.123:22
git pull piotrek master # Zdefiniowanie własnego zewnętrznego repo i pobranie zmian
2. Wysłanie własnych zmian
git push origin master # Wysłanie własnych commitów
Systemy kontroli wersji - GIT
Przeglądanie zmian w repozytorium
1. Przeglądanie zmian w indeksie
git status
2. Przeglądanie zmian w repozytorium
git log
Systemy kontroli wersji - GIT
Praca na gałęziach (branching)
Systemy kontroli wersji - GIT
Dobra praktyka pracy na gałęziach
Systemy kontroli wersji - GIT
Prace developerskie
wydzielamy feature z gałęzi develop
git checkout -b feature/my-branch
pracujemy na własnym branchu (modyfikujemy kod)
git add . && git commit -m "Modified"
git push origin feature/my-branch
po zakończeniu prac w GitLabie tworzymy merge request: feature/my-branch -> develop
Systemy kontroli wersji - GIT
Mrożenie kodów
tworzymy nowy release z developa, np. release/1.0
testujemy i stabilizujemy kod w środowisku RC
poprawki tworzymy jako feature wydzielany z release
poprawki po CR mergujemy do release
jeśli poprawka musi być na developie używamy narzędzia git cherry-pick
wszystkie poprawki możemy przenieść mergując release do developa
Systemy kontroli wersji - GIT
Wdrożenie produkcyjne
mergujemy release do mastera (kod produkcyjny)
mergujemy release do developa (kod developerski)
po CR hotfixa mergujemy go do mastera i przesuwamy tag (lub tworzymy kolejną minorową wersję)
Systemy kontroli wersji - GIT
Skomplikowane?
Systemy kontroli wersji - GIT
Systemy kontroli wersji - GIT
Systemy kontroli wersji - GIT
Hooki
git bisect
git cherry
git stash
Systemy kontroli wersji - GIT
Systemy kontroli wersji - GIT
Kontakt ze mną:
E-mail: tomasz.banasiak@rst.com.pl
WEB: http://banasiak.pro