:sparkles: PWA :sparkles:
Twarz autora bloga

Piotr Kowalski

Organizator WarsawJS Trener YouTuber

Git - początki w najpopularniejszym systemie kontroli wersji

Kilka tygodni temu miałem przyjemność zostać prelegentem na uczelni. Miałem za zadanie wybranie dowolnego systemu kontroli wersji, oraz przedstawienie jego swojej grupie.

Baner reklamujący artykuł

Ze względu na popularność i niezawodność (oraz aktualny trend) wybrałem rozproszony system kontroli wersji Git. Używam go już 3 rok i jestem zadowolony. Nie przypominam sobie sytuacji, w której bym na niego narzekał.

W sekcji Bibliografia (poniżej) pierwszy odnośnik kieruje do mojej prezentacji. Zachęcam do szybkiej weryfikacji moich opisów poszczególnych zagadnień. Zawarłem w niej tylko skromny zalążek Gita, ale w taki sposób, abyś po jej przeczytaniu był w stanie sobie z nim poradzić.

Przykładowe zadania repozytorium

$ # ustawienie konta użytkownika
$ git config --global user.name NICK
$ git config --global user.email ADRES_EMAIL

$ # wyświetlanie listy plików zmodyfikowanych i utworzonych
$ git status

$ # wyświetlenie listy wszystkich rewizji
$ git log

$ # aplikacja okienkowa do zarządzania repozytorium
$ gitk

Operacje na rewizjach (commit-ach):

# dodanie wszystkich plików na changelistę
$ git add -A

# zapisuje wszystkie zmodyfikowane pliki w repozytorium
$ git commit -am "KOMENTARZ"

# przywraca repozytorium gdzie HEAD jest wybraną rewizją
$ git reset SHA (ID REWIZJI)

# tworzy rewizję która wprowadza odwrotne zmiany we wskazanej rewizji
$ git revert SHA (ID REWIZJI)

# tworzy brancha gdzie HEADem jest wskazana rewizja
$ git checkout SHA (ID REWIZJI)

# usuwanie plików, które nie zostały dodane do repozytorium,
# pliki nie istnieją na changeliście
$ git clean -f

Operacje na gałęziach (branch-ach):

# wyświetlenie listy wszystkich branchy w repozytorium
$ git branch -a

# utworzenie lokalnej gałęzi + przełączenie się na nią
$ git checkout -b BRANCH

# usunięcie lokalnej gałęzi
$ git branch --delete BRANCH

# usunięcie brancha z serwera
$ git push origin --delete BRANCH

# włączenie wskazanego branch do aktualnego
$ git merge BRANCH

Plusy

Głównym plusem IMHO jest to, że podczas pracy nad projektem mogę tworzyć commity (rewizje) bez aktualizacji głównego repozytorium. Daje to przewagę na systemami scentralizowanymi, których reprezentantem jest SVN.

Kiedy będę gotowy to wykonam:

$ git push origin master

i wszystkie moje zmiany lądują na serwerze. W głównej gałęzi (branch).

Kiedy będę chciał pracować na najnowszej wersji projektu zapisanego w repozytorium to uruchomię:

$ git pull origin master

Minusy

Podczas mojego skromnego doświadczenie, nie miałem żadnych problemów z Git-em.

Bibliografia