GIT. Rozproszony system kontroli wersji

Podobne dokumenty
Narzędzia programistyczne - GIT

Git rozproszony system kontroli wersji

Programowanie zespołowe

GIT. System Kontroli wersji GIT. Rafał Kalinowski

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Zarządzanie projektami informatycznymi

Co zostanie wypisane na ekranie? (1)

Programowanie I

System kontroli wersji Git

Systemy Kontroli Wersji

System kontroli wersji, system zarządzania kodem źródłowym

Systemy zarządzania wersjami

Platforma GitHub. 1 Cel laboratoriów. 2 GitHub. 2.1 Git. źródeł.

ponad pracowników ponad pracowników ponad pracowników ponad pracowników

System kontroli wersji git

Assembla.com zajęcia 1

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Partnerzy: Laboratorium 15

SUBVERSION TOMASZ ŁUKASZUK

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Środowisko programisty. Środowisko programisty 1/35

Trwały nośnik w Alior Bank

git krótki przewodnik


Git i platforma GitHub

Systemy kontroli wersji

Systemy kontroli wersji git od wewnatrz Użycie gita Koniec. git. Rozproszony system kontroli wersji. sphere.pl. Koło Naukowe Sfera

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

Pojęcie systemu baz danych

CVS system kontroli wersji

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Bazy danych 2. Wykład 1

System zarządzania wersjami I Subversion

Sieciowa instalacja Sekafi 3 SQL

TECHNOLOGIA OBSŁUGI KONTRAKTÓW INFORMACJA O AKTUALIZACJI SYSTEMU ISO 9001:2000 Dokument: Raport Numer: 22/2012 Wydanie: Waga: 90

Przygotowanie platformy projektowo-programowej

Rejestracja użytkownika Bentley Często zadawane pytania techniczne

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

Baza danych sql. 1. Wprowadzenie

Programowanie zespołowe

Drupal i GIT. Schemat pracy.

PERFORCE SYSTEM KONTROLI WERSJI W ZASTOSOWANIACH

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Skrócona instrukcja obsługi programu EndymionKOL

Instrukcja backup PostgreSQL

WOJEWÓDZTWO PODKARPACKIE

Instalacja programu Warsztat 3 w sieci

Kalipso wywiady środowiskowe

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Kancelaria Prawna.WEB - POMOC

Ogólnopolskie Repozytorium Prac Dyplomowych

, NO 556 NATHAN ROAD, MONGKOK, KOWLOON, HONG KONG. KRS: o

BlackHole. Bezpieczne Repozytorium Ważnych Zasobów.

Backup Premium Podręcznik Szybkiego Startu

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Instrukcja Instalacji. Instalacja lokalna

SVN sojusz, partnerstwo, współpraca

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Najczęściej stosowanym systemem obiegu dokumentów elektronicznych jest poczta elektroniczna. Dokumenty przesyłamy sobie jako załączniki do listów.

Narzędzia umożliwiające tworzenie scentralizowanej polityki prowadzenia backupów. Paweł Płoskonka IS2, P2

KS-ZSA. Mechanizm aktualizacji kartotek lokalnych w aptece na podstawie zmian w kartotece CKT. Data aktualizacji:

Jak usprawnić tworzenie i zarządzanie stroną na drupalu. Maciej Łukiański

Tomasz Greszata - Koszalin

Silent setup SAS Enterprise Guide (v 3.x)

Instrukcja migracji z programu Proste Faktury do programu DuoKomp Sprzedaż i Magazyn

Rozproszony system kontroli wersji GIT. Piotr Macuk

Proces ciągłej integracji Git + Gerrit + Jenkins. autor : Maciej Pieszała

Referat Pracy Dyplomowej

Memeo Instant Backup Podręcznik Szybkiego Startu

Trwały nośnik w T-Mobile Usługi Bankowe. Opis rozwiązania dla zapewnienia elektronicznym dokumentom publicznym postaci trwałego nośnika

Instrukcja instalacji i obsługi programu Szpieg 3

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

SPOSOBY DYSTRYBUCJI OPROGRAMOWANIA PANDA

Podręcznik Integracji

Konfiguracja i administracja systemem kontroli wersji SVN

EPA Systemy Sp. z o.o. Przedstawiciel CTERA Networks Ltd w Polsce Tel gbi@profipc.pl CTERA

Opis zmian w wersji Oprogramowania do Obsługi SR/FA/SW/ST/DM/DS/DC

Poradnik dla opiekunów i podopiecznych Fundacji Dzieciom Zdążyć z Pomocą

Open Source w służbie developerom

System kontroli dostępu ACCO NET Instrukcja instalacji

Galileo - encyklopedia internetowa Plan testów

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Sesje i logowanie. 1. Wprowadzenie

Arkusz Optivum. Praca z repozytorium wymaga połączenia z Internetem i zalogowania się do Sigmy.

Instrukcja do programu Przypominacz 1.5

Przykładowa lista zagroŝeń dla systemu informatycznego

Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze sprawdzarkami RSowymi.

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Oferta świadczenia pomocy prawnej dla Zdalny dostęp do dokumentów

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

Pilz E-Shop więcej niż zwykłe zakupy w internecie

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Instalacja i konfiguracja SAS PC Files Server

Transkrypt:

GIT Rozproszony system kontroli wersji

Co to jest system kontroli wersji? System kontroli wersji śledzi wszystkie zmiany dokonywane na pliku (lub plikach) i umożliwia przywołanie dowolnej wcześniejszej 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, svk, Git).

Rozproszony system kontroli wersji Repozytoriów jest tyle ilu członków zespołu. Każdy z nich lokalnie posiada pełne źródła projektu wraz z historią zmian. Wszystkie repozytoria są równe żadne z nich nie jest w żaden sposób wyróżnione.

GIT Pierwsza wersja narzędzia Git została wydana 7 kwietnia 2005 roku, by zastąpić poprzednio używany w rozwoju Linuksa, niebędący wolnym oprogramowaniem, system kontroli wersji BitKeeper. Nowy system kontroli wersji miał być: Rozproszony chroniony przed błędami w repozytorium (przypadkowymi np. awaria twardego dysku; złośliwymi np. wprowadzonymi przez kogoś). szybki Ponieważ żaden system nie spełniał warunków, Linus Torvalds stworzył własny system kontroli wersji.

Historia Prace nad Gitem rozpoczęły się 3 kwietnia 2005 roku, projekt został ogłoszony 6 kwietnia, 7 kwietnia Git obsługiwał kontrolę wersji swojego własnego kodu, 18 kwietnia pierwszy raz wykonano łączenie kilku gałęzi kodu, 27 kwietnia Git został przetestowany pod względem szybkości z wynikiem 6,7 łat na sekundę, a 16 czerwca Linux 2.6.12 był hostowany przez Gita.

Czy ktoś tego używa? Jądro Linuksa oraz podprojekty z nim związane, a także GNU HURD, GNOME, GTK+, GStreamer, GIMP, Perl, Qt, jquery i kilka innych. Również część serwisów internetowych używa Gita do rozwijania swojego kodu (a część z niego jest publicznie dostępna), m.in. Reddit (otwarte źródła), facebook.

Większość systemów przechowuje informacje jako listę zmian na plikach.

Git podchodzi do przechowywania danych w odmienny sposób. Za każdym razem jak tworzysz commit lub zapisujesz stan projektu, Git tworzy obraz przedstawiający to jak wyglądają wszystkie pliki w danym momencie i przechowuje referencję do tej migawki (ang. Snapshot).

Co nam to daje?

Niemal każda operacja jest lokalna. Większość operacji w Git do działania wymaga jedynie dostępu do lokalnych plików i zasobów, lub inaczej nie są potrzebne żadne dane przechowywane na innym komputerze w sieci. Jeśli jesteś przyzwyczajony do systemów CVCS, w których większość operacji posiada narzut związany z dostępem sieciowym, ten aspekt Git sprawi, że uwierzysz w bogów szybkości, którzy musieli obdarzyć Git nieziemskimi mocami. Ponieważ kompletna historia projektu znajduje się w całości na Twoim dysku, odnosi się wrażenie, że większość operacji działa niemal natychmiast.

Przykład: W celu przeglądu historii projektu, Git nie musi łączyć się z serwerem, aby pobrać historyczne dane - zwyczajnie odczytuje je wprost z lokalnej bazy danych. Oznacza to, że dostęp do historii jest niemal natychmiastowy. Jeśli chcesz przejrzeć zmiany wprowadzone pomiędzy bieżącą wersją pliku, a jego stanem sprzed miesiąca, Git może odnaleźć wersję pliku sprzed miesiąca i dokonać lokalnego porównania. Nie musi w tym celu prosić serwera o wygenerowanie różnicy, czy też o udostępnienie wcześniejszej wersji pliku.

Oznacza to również, że można zrobić prawie wszystko będąc poza zasięgiem sieci lub firmowego VPNa. Jeśli masz ochotę popracować w samolocie lub pociągu, możesz bez problemu zatwierdzać kolejne zmiany, by w momencie połączenia z siecią przesłać komplet zmian na serwer. Jeśli pracujesz w domu, a klient VPN odmawia współpracy, nie musisz czekać z pilnymi zmianami. W wielu innych systemach taki sposób pracy jest albo niemożliwy, albo co najmniej uciążliwy. Przykładowo w Perforce, nie możesz wiele zdziałać bez połączenia z serwerem; w Subversion, możesz edytować pliki, ale nie masz możliwości zatwierdzania zmian w repozytorium (ponieważ nie masz do niego dostępu).

Suma kontrolna Dla każdego obiektu Git wyliczana jest suma kontrolna przed jego zapisem i na podstawie tej sumy można od tej pory odwoływać się do danego obiektu. Oznacza to, że nie ma możliwości zmiany zawartości żadnego pliku, czy katalogu bez reakcji ze strony Git. Nie ma szansy na utratę informacji, czy uszkodzenie zawartości pliku podczas przesyłania lub pobierania danych, bez możliwości wykrycia takiej sytuacji przez Git.

Mechanizmem, który wykorzystuje Git do wyznaczenia sumy kontrolnej jest tzw. Skrót SHA-1. Jest to 40-znakowy łańcuch składający się z liczb szesnastkowych (0 9 oraz a f), wyliczany na podstawie zawartości pliku lub struktury katalogu. Skrót SHA-1 wygląda mniej więcej tak: 24b9da6552252987aa493b52f8696cd6d3b00373

Trzy stany GITa Git posiada trzy stany, w których mogą znajdować się pliki: zatwierdzony, zmodyfikowany i śledzony. Zatwierdzony oznacza, że dane zostały bezpiecznie zachowane w Twojej lokalnej bazie danych. Zmodyfikowany oznacza, że plik został zmieniony, ale zmiany nie zostały wprowadzone do bazy danych. Śledzony - oznacza, że zmodyfikowany plik został przeznaczony do zatwierdzenia w bieżącej postaci w następnej operacji commit.

Wynikają z tego trzy główne sekcje projektu Git: - katalog Git, - katalog roboczy, - przechowalnia (ang. staging area).

Katalog Git jest miejscem, w którym Git przechowuje własne metadane oraz obiektową bazę danych Twojego projektu. To najważniejsza część Git i to właśnie ten katalog jest kopiowany podczas klonowania repozytorium z innego komputera. Katalog roboczy stanowi obraz jednej wersji projektu. Zawartość tego katalogu pobierana jest ze skompresowanej bazy danych zawartej w katalogu Git i umieszczana na dysku w miejscu, w którym można ją odczytać lub zmodyfikować. Przechowalnia to prosty plik, zwykle przechowywany w katalogu Git, który zawiera informacje o tym, czego dotyczyć będzie następna operacja commit. Czasami można spotkać się z określeniem indeks, ale ostatnio przyjęło się odwoływać do niego właśnie jako przechowalnia.

Podstawowy sposób pracy z Git wygląda mniej więcej tak: Dokonujesz modyfikacji plików w katalogu roboczym. Oznaczasz zmodyfikowane pliki jako śledzone, dodając ich bieżący stan (migawkę) do przechowalni. Dokonujesz zatwierdzenia (commit), podczas którego zawartość plików z przechowalni zapisywana jest jako migawka projektu w katalogu Git. Jeśli jakaś wersja pliku znajduje się w katalogu git, uznaje się ją jako zatwierdzoną. Jeśli plik jest zmodyfikowany, ale został dodany do przechowalni, plik jest śledzony. Jeśli zaś plik jest zmodyfikowany od czasu ostatniego pobrania, ale nie został dodany do przechowalni, plik jest w stanie zmodyfikowanym.

Dziękuję za uwagę