System Kontroli wersji GIT

Slides:



Advertisements
Podobne prezentacje
Co to jest Pulpit eTwinning?
Advertisements

Graficzny klient SVN graficzny klient SVN integrujący się z powłoką systemu dostępny tylko dla systemu Windows - do pobrania z
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Zarządzanie konfiguracją oprogramowania
Interfejs użytkownika do zarządzania konfiguracją oprogramowania
Prezentacja na temat Dos`a. Wykonał: Tomasz Kucharczyk
1 Linux jako system wielozadaniowy i wielodostępny.
OGÓLNIE O LINUKSIE Co to jest Linux?
Wspólne skoroszytów Wspólne użytkowanie skoroszytów Arkusze i skoroszyty Tworzenie nowego skoroszytu Obliczenia w skoroszytach Przeglądanie wzorów w skoroszytach.
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE Zarządzanie.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
Zarządzanie Wersjami Na przykładzie pakietu Microsoft Visual SourceSafe 6.0 (VSS) Krzysztof Trela, s1761.
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Wprowadzenie do Unix’a
Obsługa serwera zdalnego przez klienta FTP
Wykład 2: Systemy klasy C.A.T. (Computer-Aided Translation)
Proxy (WWW cache) Sieci Komputerowe
„Migracja środowisk Novell NDS/eDirectory oraz Novell Groupwise do środowiska Microsoft Active Directory oraz Microsoft Exchange przy użyciu narzędzi Quest.
Artur Szmigiel Paweł Zarębski Kl. III i
Rozproszone bazy danych
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Lekkie metodologie wytwarzania oprogramowania Raport z gry planistycznej Jakub Nowak Przemysław Warzyński.
ACTIVE DIRECTORY Definicja Active Directory.
Nowoczesny system zarządzania firmą
Instytut Tele- i Radiotechniczny WARSZAWA
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Interpretatory poleceń - powłoki systemu
Linux - polecenia.
Systemy kontroli wersji Public enemy number one czy twój największy przyjaciel? Not Yet Another Conference Kraków, Maciej Hryniszak.
Główne cechy systemu Integracja z systemem RCP Przejrzysty moduł raportowania pozwalający wyświetlać zarejestrowane zdjęcia wraz z raportem czasu pracy.
Dr hab. Dariusz Piwczyński Katedra Genetyki i Podstaw Hodowli Zwierząt
Prezentacja i szkolenie
Obsługa dostępu do danych i ich dostępności
Systemy operacyjne.
System plików systemu linux
Polecenia systemowe dos, winodws, linux
Sieciowe systemy operacyjne - UNIX
Wybrane zagadnienia relacyjnych baz danych
GIT.
Naciśnij SPACJĘ aby przejść dalej
Narzędzia klienta usługi archiwizacji Warsztaty „Usługa powszechnej archiwizacji” Michał Białoskórski, CI TASK Bartłomiej Balcerek, WCSS.
Przewodnik Przewodnik Mój folder EBSCOhost (My EBSCOhost)
ODDZIAŁ UDOSTĘPNIANIA ZBIORÓW CZĘŚCIĄ ZINTEGROWANEGO SYSTEMU KOHA - NOWE MOŻLIWOŚCI ROZWIĄZANIA ZASTOSOWANE W BIBLIOTEKACH: - POLITECHNIKI KRAKOWSKIEJ.
Linux, to kompletny system operacyjny (jądro i programy użytkownika), który powstał na zasadzie GNU – czyli Powszechnej Licencji Publicznej (General Public.
Systemy kontroli wersji Autorzy:  Mirosław Jedynak  Adam Łączyński.
Systemy kontroli wersji
Uprawnienia w Windows Server
Temat 5: Instrukcje: print(), echo()
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
System operacyjny „DOS”, „MS-DOS” oraz wybrane komendy.
Systemy kontroli wersji Podstawy. Cz 1. Systemy kontroli wersji  Czym są i po co stosuje się systemy kontroli wersji  Architektury systemów kontroli.
© 2012 Microsoft Corporation. Wszelkie prawa zastrzeżone. Dodawanie kontaktu Lista Kontakty upraszcza komunikację i umożliwia sprawdzenie statusu obecności.
Twój pierwszy web projekt w Pythonie !
Operacje na plikach i folderach
EBSCOhost Collection Manager Konto osoby proponującej książki do zakupu Przewodnik support.ebsco.com.
Konsola MMC i jej przystawki
Przewodnik Wprowadzenie do
How to GIT?. Co to? Szybki, rozproszony system kontroli wersji Na licencji GNU PL w wersji 2 Lokalny Łatwy.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Temat: Tworzenie bazy danych
Analiza, projekt i częściowa implementacja systemu wspomagania pracy Referatu Reprografii Promotor: mgr inż. Dariusz OlczykWykonała: Katarzyna Ściwiarska.
Linux mgr inż. Artur SZACHNO Wyższa Szkoła Ekonomiczno-Informatyczna.
GIT - System kontroli wersji
Inżynieria Oprogramowania Laboratorium
Git - system kontroli wersji
System operacyjny Linux
Content Management System
Microsoft Disk Operating System
System operacyjny „DOS”, „MS-DOS” oraz wybrane komendy.
Zapis prezentacji:

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 Serwer Komputer Repozytorium Plik SVN CVS Perforce Używana jako miejsce przechowywania kopii zapasowej (Backupu) Brak prywatnych branch’y Do wykonania większości standardowych operacji wymaga połączenia do serwera. Serwer Komputer Plik Repozytorium Wersja 1 Wersja 2 Jeżeli padnie główny serwer?

Modele pracy c.d. Serwer Komputer Model Rozproszony Plik Wersja 1 Repozytorium Wersja 1 Wersja 2 Model Rozproszony GIT Mercurial Bazaar 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. Pierwsze pobranie repozytorium wymaga pobrania całej jego zawartości. Całe repozytorium musi być trzymane na dysku lokalnym.

Rozproszony model pracy 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. Komenda w gicie „> git gc” służy do czyszczenia i optymalizacji repozytorium. Jednym z jej zadań jest usunięcie nieosiągalnych obiektów oraz kompresja wersji obiektów.

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

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

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

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

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

Podstawowe operacje cd. git branch – do zarządzania branch’ami git checkout – przełączanie się między branch’ami git merge – łączy podane branch’e git rebase – zmienia punkt startu dla branch’a git reset – przywraca stan katalogu roboczego git stash – zapisuje/odczytuje zmiany z przestrzeni tymczasowej (rodzaj schowka) git gc – 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 Git push origin :refs/tags/v.2.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 Git push origin :heads/nazwa_brancha

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” Konflikty są podobnie rozwiązane jak jest to zrobione w SVN. Opcja -a podana przy komendzie commit powoduje, że wszystkie pliki istniejące w Indexie zostaną zaczytane z Working Direcotory, natomiast pozostałe zostaną usunięte.

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 http://gerrit.aokp.co/#/c/17020/

Tworzenie i łączenie (merge) branch’y jest szybkie i łatwe. 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. (Przykład: Główne repozytorium projektu jest w trybie read. Każdy zespół developerów ma swoje zdalne repozytorium do którego zapisuje(commit’uje) zmiany, następnie lider zespołu sprawdza je i łączy (merguje) z kolenym repozytorium wyżej. I tak aż do momentu kiedy osoba odpowiedzialna za główne repozytorium udostępni je na głównym repozytorium.

Pytania ?