Poznaj GITa - część teoretyczna - Anna Szwiec
-
Upload
women-in-technology -
Category
Technology
-
view
269 -
download
1
Transcript of Poznaj GITa - część teoretyczna - Anna Szwiec
Women in Technology
● Wymiana doświadczeń
● Aktywizacja kobiet
● Inspirowanie do działania
● Przełamanie barier i stereotypów
● Wspieranie kobiet w osiągnięciu zamierzonych celów
● Wspólna edukacja
● Kobieta może być pasjonatką i wybitną specjalistką!
System kontroli wersji
System kontroli wersji (ang. version/revision control system) – oprogramowanie służące do śledzenia zmian głównie w kodzie źródłowym oraz pomocy programistom w łączeniu zmian dokonanych w plikach przez wiele osób w różnych momentach czasowych.
O co w tym wszystkim chodzi?
● Gdzieś na dysku komputera lokalnego albo serwera znajduje się repozytorium - specjalna baza danych.
● Tam znajdują się wszystkie projekty wraz z historią zmian.
● Każdy z nas na naszym dysku lokalnym ma swój katalog będący odzwierciedleniem części lub całości repozytorium.
● Katalog roboczy oprócz plików i podkatalogów zawiera również ukryte foldery zawierające dane niezbędne do śledzenia dokonywanych zmian.
Po co nam to?
● Możemy obejrzeć historię zmian projektu (szukanie "winnego")
● Możemy "wyłuskać z niego" dowolną wcześniejszą wersję interesującego nas pliku.
● Możemy skasować cały katalog roboczy i odtworzyć go w aktualnej wersji, bądź w jakiejkolwiek wcześniejszej.
● Możemy także dzielić się pracą z innymi i dzięki wspólnemu repozytorium przekazywać sobie wzajemnie prace i uaktualniać nasz folder, o zmiany innych.
Jakie jeszcze są korzyści?
● Pozwala nam porządkować naszą pracę.
● Umieszczenie repozytorium na osobnym dysku czy serwerze zwiększa bezpieczeństwo naszych danych.
● Mechanizmy kontroli wersji ułatwiają tworzenie kopii bezpieczeństwa, przygotowywanie pakietów do dystrybucji, kopii przyrostowych zawierających jedynie zmienione pliki.
Wróćmy do system kontroli wersji..
Systemy kontroli wersji dzielą się na:
● lokalne, pozwalające na zapisanie danych jedynie na lokalnym komputerze (np. SCCS oraz RCS)
● scentralizowane, oparte na architekturze klient-serwer (np. CVS, SVN)
● rozproszone, oparte na architekturze P2P (np. BitKeeper, Code Co-op, Git, svk).
Pierwsza grupa zapisuje jedynie wersje plików z lokalnego komputera. W rozwiązaniach scentralizowanych istnieje jedno centralne repozytorium, z którym wszyscy użytkownicy systemu synchronizują swoje zmiany. Rozwiązania rozproszone pozwalają na prowadzenie równoprawnych, niezależnych gałęzi, które można dowolnie synchronizować ze sobą nawzajem, np. poprzez e-mail (Code Co-op). Wybór odpowiedniego typu systemu kontroli wersji zależy od potrzeb projektu.
GIT
Git – rozproszony system kontroli wersji. Stworzył go Linus Torvalds jako narzędzie wspomagające rozwój jądra Linux. Git stanowi wolne oprogramowanie i został opublikowany na licencji GNU GPL w wersji 2.
Pierwsza wersja narzędzia Git została wydana 7 kwietnia 2005.
Dlaczego GIT?
● Jest to oprogramowanie open source na licencji GNU GPL
● Wiele dużych projektów korzysta z GITa jako systemu kontroli wersji: Android, GIMP, Linux, jQuery, Symfony itd
● Dzięki prostym algorytmom scalania jest szybszy niż inne.
● Jest to system rozproszony.
Najważniejsze cechy
● Dobre wsparcie dla rozgałęzionego procesu tworzenia oprogramowania: jest dostępnych kilka algorytmów łączenia zmian z dwóch gałęzi, a także można dodawać własne algorytmy.
● Praca off-line: każdy programista posiada własną kopię repozytorium, do której może zapisywać zmiany bez połączenia z siecią; następnie zmiany mogą być wymieniane między lokalnymi repozytoriami.
Najważniejsze cechy
Wsparcie dla istniejących protokołów sieciowych: dane można wymieniać przez HTTP(S), FTP, SSH.
● Efektywna praca z dużymi projektami: system Git według zapewnień Torvaldsa, a także według testów fundacji Mozilla, jest o rzędy wielkości szybszy niż niektóre konkurencyjne rozwiązania.
Konfiguracja GIT Bash
● Generowanie kluczy$ ssh-keygen -t rsa -C " [email protected]"
● Użytkownik
$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "[email protected]"