Skocz do zawartości
Coders Lab

System kontroli wersji (VCS) - co to jest? Podstawowe informacje

    Rekomendowane odpowiedzi

    Napisano (edytowane)

    Słów kilka na temat systemu kontroli wersji i kilka wskazówek do gita...

    Czy słyszałeś na studiach o systemie kontroli wersji? Czy pokazano i wytłumaczono Ci jak to działa? Jeśli Twoja odpowiedź brzmi „nie”, a studiujesz lub dopiero zaczynasz swoją przygodę z programowaniem, to ten artykuł jest właśnie dla Ciebie. Przybliżę Ci w nim czym są systemy kontroli wersji, zapoznam Cię także z jednym z najbardziej popularnych tego typu systemów (Git).

     

    Aby rozmawiać o systemach kontroli wersji musimy uświadomić sobie po co w ogóle wymyślono takie narzędzie? Odpowiedź na to pytanie jest bardzo prosta, więc pozwolę Ci dojść do niej samemu.

     

    Załóżmy, że studiujesz i piszesz ze znajomym aplikację na zaliczenie. Masz w niej fragment kodu odpowiedzialny za zmianę tła co 5s. Oddajecie aplikację do oceny wykładowcy, a ten mówi że tło miało być tęczowe, a nie migać w idiotyczny sposób. Wracasz i siadasz do komputera, lekko zniesmaczony robisz klikasz na pliku „kopiuj”, następnie obok klikasz „wklej” i do nazwy do pisujesz aktualną datę - brzmi znajomo? - Wykładowca każe dorobić jeszcze przycisk, który zmieni kolor tła na losowy i tym zadaniem ma się zająć Twój znajomy. Każdy robi to co zostało mu przydzielone. Gdy spotykacie się następnym razem przed oddaniem aplikacji okazuje się, że zrobiliście od groma różnych zmian i nie sposób jest teraz to połączyć niczego nie psując.

     

    Jakie problemy dostrzegasz w tej scence? Ja widzę tutaj:

    1. Duplikacja plików

      1. Zwiększenie zajmowanego miejsca

      2. Zwiększenie prawdopodobieństwa na pracę na złym pliku

    2. Brak czytelnej i jasnej historii zmian

    3. Brak możliwości jednoczesnej i bezkonfliktowej pracy na pliku przez kilka osób
       

    Jak widzisz istnieje kilka problemów, z którymi trzeba się zmierzyć. Systemy kontroli wersji (w skrócie VCS) rozwiązują te problemy. Możemy zatem stwierdzić, że VCS jest narzędziem ułatwiającym śledzenie zmian w plikach oraz łączenie efektu pracy kilku osób w jedną całość.

     

    Jak zatem powinien działać taki system, aby rozwiązać problemy o których wyżej rozważaliśmy? I tutaj bywa różnie. Systemów kontroli wersji powstało już wiele i generalnie możemy je podzielić na 3 grupy mając na uwadze ich architekturę: lokalne, scentralizowane, rozproszone. Różnią się one sposobem przechowywania plików. Kolejnego podziału można dokonać ze względu na sposób w jaki system wykrywa, że nastąpiły zmiany - jedne pracują na zestawach zmian, drugie na zmianach zawartości w plikach. Historia zmian wygląda jak drzewo. Użytkownicy tworzą swoje gałęzie (branches) od interesującego ich wątku.

    Gscfkxwp_SCNBanpKtMjLLHBJ2UMSzc5X5R7RfpWAgmS7FqWkSWDiQjs7IgZo9OHH7I1xQcRRD_DzkVXtuuR8GSIrugsl0X5SpfUc_pqhNSXskmzNzqzjw7Q7q9Z-H-wo4PWotL-

    Przejdziemy teraz do omówienia jednego z najbardziej popularnych VCS i wyjaśnienia jak ono funkcjonuje. Prawdopodobnie już się z nim spotkałeś szukając jakieś informacji, a chłopaki ze „stacka” odesłali Cię na czyjegoś GitHuba. Git -bo tak się nazywa - jest to narzędzie wymyślone przez Linusa Torvaldsa (tak, to ten sam który odpowiedzialny jest za powstanie jądra Linuxa). Należy on do grupy systemów rozproszonych - każdy użytkownik ma na swoim komputerze kopie wszystkich danych projektu. W poniższych krokach przedstawię Ci jak rozpocząć pracę z Gitem.

     

    Krok 1: Instalacja Gita

    Instalacja na każdym systemie wygląda troszkę inaczej. Jeśli korzystasz z Windowsa po prostu wejdź na stronę gitforwindows.org i kliknij w wielki przycisk „Download”. Instalacja wygląda tak samo jak w przypadku 90% programów, klikasz cały czas dalej. Jeśli masz maczka to sprawa jest znacznie prostsza, nie musisz nic robić bo masz go w standardzie zainstalowanego. W przypadku Linuxa możesz skorzystać z narzędzi yum lub apt-get.

     

    Krok 2: Konfiguracja

    Teraz musisz ustawić swoje dane, robisz to po to aby pozostawić informację o tym kto dokonał danych zmian. Dane jakie musisz wprowadzić to nazwa oraz email. Otwórz terminal a następnie wklej polecenia, które widzisz poniżej.

    $ git config --global user.name „Twoja nazwa"
    
    $ git config --global user.email twoj@email.com


    Krok 3: Tworzenie repozytorium

    Najwygodniejszą opcją jest utworzenie repozytorium na serwerze i jego sklonowanie na swój komputer. Serwer możesz „postawić” samemu lub skorzystać z istniejących już narzędzi. Opcji masz naprawdę wiele, sugeruję sprawdzić GitHub (bardzo popularne) oraz Bitbucket (darmowe prywatne repozytoria).

     

    Krok 4: Podłączenie naszego komputera z repozytorium

    Jeśli utworzyłeś repozytorium na serwerze to teraz musisz je sklonować. Aby to zrobić musisz otworzyć terminal i wpisać/wkleić tam następujące polecenie:

    $ git clone _twoje_repozytorium_


    Jeśli utworzyłeś repozytorium w jednym z sugerowanych przeze mnie miejsc, to po wejściu w nie powinieneś znaleźć tam dokładne polecenie, które wystarczy wkleić w terminalu.

     

    Krok 5: „Pierwszy commit, pierwszy push”Gdy już ma sklonowane repozytorium i edytowałeś jakiś plik będziesz mógł dodać swoje zmiany. Aby to zrobić musisz otworzyć terminal, a następnie przejść do swojego repozytorium. Teraz sprawdzimy co tak naprawdę się stało, wpisz:

    $ git status


    zobaczysz teraz branch, na którym pracujesz oraz listę plików które zmieniałeś.

    Pliki mogą znajdować się w kilku stanach:

    • Untracked
    • Unmodified
    • Modified
    • Staged

    Aby dodać plik na którym pracowałeś wpisz:

    $ git add _nazwa_pliku_


    Jeśli chcesz dodać wszystkie pliki wpisz:

    $ git add -A


    Teraz możemy opisać zmiany jakie wprowadziliśmy w plikach - tak by później w historii było to łatwo znaleźć. Aby to zrobić wpisz:

    $ git commit -m „Tutaj opisz swoje zmiany”


    Teraz twoje zmiany są gotowe do publikacji, aby to zrobić wpisz:

    $ git push


    Tyle! Teraz możesz zobaczyć na serwerze przechodząc do swojego repozytorium zmiany jakie dodałeś.

     

    Jeśli nie jesteś fanem terminala możesz pobrać z sieci narzędzie do gita z ładnym UI. Ja mogę Ci zasugerować, abyś sprawdził Fork oraz SourceTree.

     

    Pamiętaj jednak, że to tylko narzędzia, a nie magiczne rozwiązanie. Takie rzeczy jak nazwy commitów mają bardzo duże znaczenie.

    Przykład złych nazw commitów:

    * Fix.
    
    * Better fix.
    
    * Done.
    
    * Almost done.
    
    * Fire!

    Jeśli macie do mnie jakieś pytania to chętnie na nie odpowiem, zapraszam do ich zadawania :)
     

    Specjalnie dla Android.com.pl

    Łukasz Bednarczyk

    Edytowane przez Coders Lab

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.