Przejdź do treści

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 promują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 ID_REWIZJI

# tworzy rewizję która wprowadza odwrotne zmiany we wskazanej rewizji
git revert ID_REWIZJI

# tworzy brancha gdzie HEADem jest wskazana rewizja
git checkout ID_REWIZJI

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

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

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 Gitem, które by wynikały z niepoprawne pracy programu.

Bibliografia