Git i narzędzie wspomagające Git Extension

Git i narzędzie wspomagające Git Extension

Cześć Wam! Większość programistów (i nie tylko) po jakimś czasie swojej przygody z programowaniem odczuwa problemy z wersjonowaniem swojego projektu. Przykładowo: jeśli zaczynamy rano pracę na stabilnym projekcie, w międzyczasie wprowadzimy zmiany i w trakcie dalszych implementacji (bez wcześniejszego testowania) okaże się, że z niewiadomych przyczyn aplikacja/program nie działa, to trochę czasu zajmie nam znalezienie błędu. Debugowanie i szukanie błędów w aplikacji jest jak najbardziej czymś niezbędnym i czasami nieuniknionym, ale zawsze można sobie ułatwić życie wersjonując swoje postępy. System kontroli wersji śledzi wszelkie zmiany które dokonujemy na pliku (lub plikach) i umożliwia przywrócenie dowolnej wcześniejszej wersji. Oczywiście najpopularniejszym systemem kontroli wersji jest Git (jego pierwsza wersja została wydana 7 kwietnia 2005 roku). Dla osób które dalej nie łapią tematu, wrzucam „mema”, który powinien przybliżyć temat:

Git Mem
Źródło: 9gag.com

Git jest narzędziem, które musi praktycznie poznać każdy programista. Nie chciałbym zanudzać i teraz tłumaczyć krok po kroku czym jest Git i na czym polega, ponieważ w Internecie jest takich poradników multum (wystarczy wpisać w Google coś w stylu: „git poradnik”). Zależy mi, by treści przekazywane dla Was były w pewien sposób unikalne. Nie widzę sensu powielać po raz n-ty czegoś, co w podobnym tonie przeczytacie na innej stronie internetowej (oczywiście jeśli ktoś chciałby pomocy z tym związanej – można się ze mną skontaktować przez formularz kontaktowy albo na Facebooku). Chciałbym przedstawić Wam najważniejsze Git-owe polecenia i dlaczego najlepiej zacząć od konsoli, ale tylko przez pewien określony czas. No to do dzieła!

Podstawowe komendy które można używać z poziomu linii poleceń:

  • Pobranie aktualnego stanu zdalnego repozytorium

git fetch -all

  • Przełączenie aktywnego lokalnego brancha na «nazwa_lokalnego_brancha» z domergeowaniem zdalnego brancha «nazwa_zdalnego_brancha»:

git checkout --merge -B «nazwa_lokalnego_brancha» origin/«nazwa_zdalnego_brancha»

  • Domergeowanie do aktualnego lokalnego brancha lokalnego brancha ‘master’:

git merge --no-ff master

ogólniej, domergeowanie do aktualnego lokalnego brancha innego lokalnego lub zdalnego brancha «nazwa_lokalnego_lub_zdalnego_brancha»:

git merge --no-ff «nazwa_lokalnego_lub_zdalnego_brancha»

  • Przesłanie aktualnego lokalnego brancha do zdalnego brancha ‘master’:

git push origin master

  • Pobranie aktualnego stanu zdalnego repozytorium z dodatkowym usunięciem lokalnych branchy nie mających już swoich odpowiedników w zdalnym repozytorium:

git fetch --prune

  • Otagowanie aktualnego stanu lokalnego repozytorium (aktualnego commitu) w repozytorium zdalnym:

git push origin tag «nazwa_tagu»

Na początku swojej przygody z systemem kontrolowania wersji polecam wszystkim skorzystać z tradycyjnej, konsolowej wersji. Dlaczego? Poznamy sens tego narzędzia od środka i zapoznamy się dokładnie z jego działaniem od wewnątrz. Dzięki temu wszystkie ruchy, które będziemy w przyszłości wykonywać na graficznych odpowiednikach, będą nam wiadome i niczego nie powinniśmy w ten sposób zepsuć (np wypushować coś do mastera mimo konfliktów). Większość graficznych narzędzi wspomagających system kontroli wersji jest na tyle intuicyjnych, że większość programistów, nigdy nie pisząc komend w konsoli, by sobie poradziła, ale lepiej znać te mechanizmy od środka. Jeśli jesteśmy już przy graficznych (GUI) odpowiednikach wspomagających Git-a, to gorąco polecam Git Extension. Proste, intuicyjne narzędzie dzięki któremu widzimy wszystkie rozgałęzienia/strukturę naszych branchy. Oczywiście Git Extension oferuje nam też coś takiego jak „Git Bash”, czyli, jeśli coś jest „nie do zrobienia” w wersji graficznej – bez problemu, szybko i efektywnie możemy przejść na wersję konsolową.

Zrzut ekranu przedstawiający Git Extension. Źródło: http://makingsense.github.io/

 

Zdania na temat tego czy korzystać z graficznych wersji, czy konsolowych są podzielone. To taki temat typu Windows vs Linus lub Java vs C++. Ja osobiście jestem zwolennikiem graficznych wersji, ponieważ zaoszczędzam na tym sporo czasu, który mogę wykorzystać na dalszą implementację swoich zadań. Zdecydowanym minusem narzędzia Git Extension jest to, że nie ma wbudowanego narzędzia merge-ującego (do rozwiązywania konfliktów). O polecanym przeze mnie narzędziu merge-ującym i dokładnej jego konfiguracji napiszę w osobnym wpisie już w następnym tygodniu. Zachęcam sobie też do wersjonowania jakiś ważnych dokumentów. Wtedy zamiast tworzyć trzydzieści plików typu: wersjaostateczna.txt., jednakostateczna.txt., jeszczebardziejostateczna.txt to będziemy zawsze mogli sobie wrócić do jakiejś wersji za pomocą Git-a.
 

Pozdrawiam serdecznie,
biegajacyprogramista.pl

Dodaj komentarz

1 × 2 =

Close Menu