Poznaj GITa - część teoretyczna - Anna Szwiec

25
„Poznaj GITa” Anna Szwiec

Transcript of Poznaj GITa - część teoretyczna - Anna Szwiec

„Poznaj GITa”Anna Szwiec

Dawno, dawno temu...

...a potem był czas na realizację marzeń.

Ważne jednak żeby nie zwariować...

CrossFit

Krav Maga

I mieć czas na realizację siebie..

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ą!

No to GIT!

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]"

TortoiseGIT

https://tortoisegit.org/

Tworzenie repozytorium

Dodawanie nowych plików

Porównywanie zmian

„Diff” i „Diff with previous vers”

Alternatywne rzeczywistości - branche

Kilka przydatnych opcji.

Bo GIT jest git!

Dziękuję za uwagę!