GIT. System Kontroli wersji GIT. Rafał Kalinowski



Podobne dokumenty
Co zostanie wypisane na ekranie? (1)

Programowanie I

System kontroli wersji git

Git rozproszony system kontroli wersji

System kontroli wersji GIT. Andrzej Śliwa. java4people 2009

Rozproszony system kontroli wersji GIT. Piotr Macuk

System kontroli wersji Git

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

Open Source w służbie developerom

Programowanie zespołowe

Tak. Konrad Ktoso Malawski blog.project13.pl - SFI

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

GIT. Rozproszony system kontroli wersji

git krótki przewodnik

Git i platforma GitHub

Git, Bitbucket. Narzędzia i środowiska programistyczne. Laboratorium 2. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Zarządzanie projektami informatycznymi

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

Narzędzia programistyczne - GIT

CVS system kontroli wersji

Podstawowy warsztat informatyka

Partnerzy: Laboratorium 15

Git, Bitbucket, IntelliJ IDEA

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

SVN sojusz, partnerstwo, współpraca

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

SUBVERSION TOMASZ ŁUKASZUK

Środowisko programisty. Środowisko programisty 1/35

Systemy zarządzania wersjami

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

Drupal i GIT. Schemat pracy.

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Assembla.com zajęcia 1

Systemy kontroli wersji

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

Programowanie Systemów Wbudowanych

Podstawowy warsztat informatyka

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

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

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

Programowanie Zespołowe

System zarządzania wersjami I Subversion

Projektowanie oprogramowania systemów NARZĘDZIA PRACY GRUPOWEJ, KONTROLI WERSJI, DOKUMENTOWANIA I ŚLEDZENIA BŁĘDÓW

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

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

Ćwiczenia z Git cz. 2

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

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

BACKUP BAZ DANYCH FIREBIRD

Git Podstawowe pojęcia, instalacja i konfiguracja

1. System kontroli wersji Instalacja programu kontroli wersji CVS

Systemy kontroli wersji

Pracownia Komputerowa wyk ad II

Git - Rozproszony System Kontroli Wersji

Program szkolenia: Continuous Integration i Git

Przygotowanie platformy projektowo-programowej

FORMA SZKOLENIA MATERIAŁY SZKOLENIOWE CENA CZAS TRWANIA

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Konfiguracja i administracja systemem kontroli wersji SVN

Programowanie zespołowe

Wprowadzenie do systemu wersjonowania svn

TortoiseHg + Windows konfiguracja

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

1 Tworzenie własnego zaproszenia dla powłoki bash

Rozpoczęcie pracy z programem.

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

KATEGORIA OBSZAR WIEDZY NR ZADANIA Podstawowe informacje i czynności

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Zbuduj prywatną chmurę backupu w firmie. Xopero Backup. Centralnie zarządzane rozwiązanie do backupu serwerów i stacji roboczych

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Subversion - jak dziaªa

Konfiguracja współpracy urządzeń mobilnych (bonowników).

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

PERFORCE SYSTEM KONTROLI WERSJI W ZASTOSOWANIACH

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Usługi sieciowe systemu Linux

Administratora CSIZS - OTM

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Git instrukcja dla studentów

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Client Management Solutions i Mobile Printing Solutions

Systemy Kontroli Wersji

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

Jak zatrudnić słonie do replikacji baz PostgreSQL

Pracownia Komputerowa wykład II

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

VinCent Administrator

Client Management Solutions i Mobile Printing Solutions

Programowanie. Systemy kotroli wersji. Janusz Szwabiński. Plan wykładu:

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

Programowanie w językach skryptowych - Python i Linux Bash

SERWER AKTUALIZACJI UpServ

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Użytkowanie systemów kontroli wersji.

Integracja produktów Atlassian na przykładzie grupy IPFD

Transkrypt:

GIT System Kontroli wersji GIT Rafał Kalinowski

Agenda Czym jest GIT? Modele pracy Możliwości GIT a Kilka słów o terminologii Obiekty w GIT ie? Struktura zmian Operacje zdalne i lokalne Podstawowe operacje Przykładowe wykorzystanie Kilka narzędzi dla GIT a

Czym jest GIT - System Kontroli Wersji - Stworzony jako zastępstwo BitKeepera - Linus Torvalds nazwał jego kolejny projekt właśnie jako GIT. ("I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'. ) - Projekt miał opierać się na - Szybkości - Prostocie - Wsparcie dla nieliniowego wytwarzania oprogramowania - Całkowite rozproszenie - Efektywnym przechowywaniu dużych projektów (np. kernel Linuksa) - Open source (GNU General Public License, v2). - Zbiór narzędzi

Modele pracy Model Scentralizowany SVN CVS Perforce Komputer Plik Serwer Repozytorium Wersja 1 Komputer Plik Wersja 2 Używana jako miejsce przechowywania kopii zapasowej (Backupu) Brak prywatnych branch y Do wykonania większości standardowych operacji wymaga połączenia do serwera.

Modele pracy c.d. Model Rozproszony GIT Mercurial Bazaar Komputer Plik Repozytorium Serwer Repozytorium Wersja 1 Wersja 2 Komputer Plik Repozytorium Wersja 1 Wersja 1 Wersja 2 Wersja 2 Możliwość pracy na wielu zdalnych repozytoriach. Wsparcie dla lokalnych/prywatnych branch y. Nie potrzebuje dostępu do serwera dla większości operacji Pełna historia zmian dostępna lokalnie.

Możliwości GIT a - Rozproszony model pracy - Wsparcie dla nieliniowego programowania (branche) - Wydajny w przypadku dużych projektów - Publikacja repozytorium (git://, http(s)://, ssh://) - Adresowanie przez zawartość (SHA-1) - #24b9da (24b9da6552252987aa493b52f8696cd6d3b00373) - Praca lokalna bez połączenia z repozytorium - Większość operacji nie wymaga połączenia z serwerem.

Kilka słów o terminologii Branch - równoległa gałąź projektu rozwijana oddzielnie od głównej. Tag marker konkretnej wersji (rewizja w SVN ie) projektu. Working Dir katalog roboczy na którym pracujemy Index rodzaj cache, czyli miejsca gdzie trzymane są zmiany do commita Master Branch główny branch z którym łączymy (merge) nasze zmiany przed wysłaniem do zdalnego repozytorium.

Obiekty GIT a Commit wskazuje na tree oraz ojca, zawiera przykładowo takie informacje jak autor, data i treść wiadomości. Tree reprezentuje stan pojedynczego katalogu (lista obiektów blob oraz zagnieżdżonych obiektów tree) Blob zawiera zawartość pliku bez żadnej dodatkowej struktury Tag wskazuje na konkretny commit oraz zawiera opis taga.

Obiekty GIT a cd.

Struktura zmian w GIT ie 1. Przechowywanie zawartości projektu jako snapshot ów. 2. Kompresowanie zawartości projektu. Zmiany w czasie Wersja 1 Wersja 2 Wersja 3 Wersja 4 Plik A A A1 A1 Plik B B B B1 Plik C C1 C1 C2

Operacje zdalne Przykładowymi operacjami zdalnymi są: git clone git fetch git pull git push pobiera zdalne repozytorium do podanego folderu pobiera obiekty i wskaźniki z innego repozytorium pobiera i integruje obiekty i wskaźniki z innego repozytorium aktualizuje zdalne repozytorium o wskaźniki i powiązane obiekty.

Operacje lokalne Większość operacji wykonywanych jest na lokalnym repozytorium. Working Directory Index Katalog gita (folder.git) checkout add commit

Podstawowe operacje git init git add git rm git mv git status stworzenie nowego repozytorium dodanie zawartości pliku do Index u usuwa plik z indexu (plik zniknie z working directory po commit ie) przenosi plik pokazuje status katalogu roboczego i poczekalni git config pobiera i ustawia opcje globalne GIT a lub tylko repozytorium

Podstawowe operacje cd. git commit git log git show git fetch git pull git push zapisuje zmiany do repozytorium lokalnego wyświetla logi z commit ów wyświetla obiekt pobiera zmiany z repozytorium zdalnego wywołuje polecenia fetch i merge wysyła zmiany do zdalnego repozytorium

Podstawowe operacje cd. git branch git checkout git merge git rebase git reset git stash git gc do zarządzania branch ami przełączanie się między branch ami łączy podane branch e zmienia punkt startu dla branch a przywraca stan katalogu roboczego zapisuje/odczytuje zmiany z przestrzeni tymczasowej (rodzaj schowka) porządkowanie i optymalizacja repozytorium

Prezentacja wykorzystania Stworzenie zdalnego repozytorium : > git init Dodanie nowych plików: > git add. > git add readme.txt Struktura projektu. (Plik.git/config) > git config

Prezentacja wykorzystania cd. Pierwszy commit: > git commit -m Treść wiadomości Historia : > git log

Prezentacja wykorzystania Stworzenie tag a: > git tag v1.00 > git tag v2.00 -m Wersja druga Wypisanie tagów: > git tag Wysłanie do zdalnego repozytorium tagów: > git push -tags Usunięcie taga: > git tag -d v2.00

Prezentacja wykorzystania Tworzenie brancha: > git branch mybranch Wyświetlenie branchy: > git branch Przełączanie branchy: > git checkout mybranch Usuwanie brancha: > git branch d mybranch

Prezentacja wykorzystania Łączenie (merge) branchy: > git merge branchname W przypadku konfliktów po poprawkach w łatwy sposób można kontynuować pracę: >git commit -a -m Merge branchy

Prezentacja wykorzystania Historia zmian: > git log > git log --after=22.06.2014.19:20 > git log <nazwa_pliku> Wyszukiwanie odpowiedzialnej osoby: > git blame <nazwa_pliku> > git blame L 12,3 <nazwa_pliku>

GIT i SVN Migracja do GIT a: > git svn clone <svn_url> Praca na kopii repozytorium SVNa w GIT ie: > git svn rebase > git svn dcommit

Przykładowe narzędzia: GIT Gui GIT Bash GIT History TortoiseGIT Eclipse egit GITHub Stash (Attlasian) Gerrit

Podsumowanie Tworzenie i łączenie (merge) branch y jest szybkie i łatwe. Możliwość wymiany kodu pomiędzy zdalnymi repozytoriami. (Udostepnienie bezpośrednio dla kogoś swojego prywatnego branch a) Łatwe prototypowanie. (Prywatne branche) Można w łatwy sposób dostosować repozytoria do swojego procesu wytwarzania kodu. Możliwość automatycznego migrowania repozytorium SVN do GIT a. Projekt OpenSource Rosnąca popularność dzięki której pojawaia się coraz więczej narzędzi/pluginów do/dla GIT a.

Pytania?