GIT: wstęp, którego nie było

W tym wpisie zawarłem krótki przegląd GIT-a i czemu warto się nim zainteresować.

GIT jest rozproszonym systemem kontroli wersji. Rozproszoność jest tym, czym odróżnia go od np: subversion. GIT trzyma pełną kopię historii repozytorium w każdej kopii lokalnej dzięki temu możemy commitować będąc niepodłączonymi do centralnego serwera.

Zmiany można przesyłać (push) do jednego centralnego repozytorium, ale możemy synchronizować też z innymi równorzędnymi repozytoriami. Bardzo fajnie możliwości pracy zostały opisane w pro git book.

Git jest bardzo szybki szczególnie gdy używamy natywnego protokołu (przez http ? jest dużo wolniejszy; tutaj jest dużo bechmarków).

GIT bardzo sprawnie radzi sobie z zarządzaniem gałęziami ? możemy używać strategii branch per feature. Nie ma też problemów z łączeniem gałęzi.

GIT pozwala odłożyć zmiany na bok bez konieczności commitowania – stash. Znacie pewnie tą funkcjonalność też z TFSa ? shelving. BTW: ciekaw jestem kto posiadał to jako pierwszy GIT czy TFS, ale stawiam raczej na GIT.

GIT może być użyty jako kllient do Subversion, dzięki temu możemy używać lokalnych commitów(bez podłączenia do centralnego serwera), odkładania zmian i lokalnych branchów.

Niestety aktualnie uruchomienie serwera git na windows nie jest zupełnie proste i nie polega na przeklikaniu wizarda.

Narzędzia windowsowe

  1. MSysGit ? wystarczy pobrać, rozpakować i już można używać GIT z linii komend
  2. TorotiseGit ? odpowiednik TortoiseSVN
  3. GitExtensions ? integracja z Visual Studio pisałem o niej tutaj, chociaż szczerze mówiąc po jakimś czasie używania muszę przyznać, że nie jest szczególnie wygodna. Taki AnkhGit byłby dużo fajniejszy, szczerze mówiąc zastanawiam się nad portem, ale jeszcze nie obejrzałem kodu AnkhSvn pod  kątem podmiany SVN na GIT.

Literatura

Linki

Tagged

One thought on “GIT: wstęp, którego nie było

  1. Bartek Szafko ? GIT: wstęp, którego nie było…

    Dziękujemy za publikację – Trackback z dotnetomaniak.pl…

Leave a Reply

Your email address will not be published. Required fields are marked *