System kontroli wersji Git

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

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Co zostanie wypisane na ekranie? (1)

System kontroli wersji git

Programowanie I

Systemy kontroli wersji

Git rozproszony system kontroli wersji

Systemy kontroli wersji

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

Zarządzanie projektami informatycznymi

SVN sojusz, partnerstwo, współpraca

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

git krótki przewodnik

Środowisko programisty. Środowisko programisty 1/35

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

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

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

Open Source w służbie developerom

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Systemy zarządzania wersjami

Programowanie zespołowe

CVS system kontroli wersji

Assembla.com zajęcia 1

Rozproszony system kontroli wersji GIT. Piotr Macuk

SUBVERSION TOMASZ ŁUKASZUK

GIT. Rozproszony system kontroli wersji

Drupal i GIT. Schemat pracy.

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

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

Narzędzia programistyczne - GIT

Wprowadzenie do systemu wersjonowania svn

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

Git i platforma GitHub

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

Partnerzy: Laboratorium 15

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

Korzystanie z VCS oznacza również, że jeśli coś zepsujesz lub utracisz pliki, możesz je łatwo odzyskać.

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

Git, Bitbucket, IntelliJ IDEA

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

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

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

Platformy Technologiczne

System zarządzania wersjami I Subversion

Git instrukcja dla studentów

Programowanie zespołowe

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

Podstawowy warsztat informatyka

1 Tworzenie własnego zaproszenia dla powłoki bash

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

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

Ćwiczenia z Git cz. 2

Podstawowy warsztat informatyka

System kontroli wersji GIT. Andrzej Śliwa. java4people 2009

CVS dla programisty lub amatora

Platforma e-learningowa

Systemy Kontroli Wersji

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

Programowanie w językach skryptowych - Python i Linux Bash

Subversion - jak dziaªa

Wykaz zmian w programie SysLoger

Programowanie Systemów Wbudowanych

Integracja APD z Ogólnopolskim Repozytorium Prac Dyplomowych

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Konfiguracja i administracja systemem kontroli wersji SVN

KONFIGURACJA CVS MAREK GRZEŚ

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Program Total Commander można pobrać np. ze strony

Git Podstawowe pojęcia, instalacja i konfiguracja

Archiwum Prac Dyplomowych

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

Archiwum Prac Dyplomowych

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Platforma e-learningowa

Archiwum Prac Dyplomowych

KS-ZSA. Korporacyjne grupy towarowe

Posiada (TAK / NIE. Zrzut ekranu. Opis funkcji

MONTAŻ BY CTI INSTRUKCJA

Instrukcja korzystania z systemu poczty NetMail (wersja skrócona)

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Program szkolenia: Continuous Integration i Git

TortoiseHg + Windows konfiguracja

System kontroli wersji SVN

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

INSTRUKCJA OBSŁUGI KLIENTA POCZTY WWW

Przygotowanie platformy projektowo-programowej

INSTRUKCJA UŻYTKOWNIKA Instalacja KS - EDE w systemie KS - ZSA ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

Instrukcja aktualizacji programu Integra 7

GIT and GIT Flow in CI/CD

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

MCAD wersja od 5.0 instrukcja instalacji ręcznej w AutoCAD.

Użytkowanie systemów kontroli wersji.

Git - Rozproszony System Kontroli Wersji

Horde. Wojciech Myszka

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości

Integracja APD z Ogólnopolskim Repozytorium Prac Dyplomowych i Otwartym Systemem Antyplagiatowym

Studium przypadku Case Study CCNA2-ROUTING. Warianty projektów

Finanse VULCAN. Import planu finansowego z Sigmy

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

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Transkrypt:

System kontroli wersji Git dr inż. Sebastian Ernst Katedra Informatyki Stosowanej W prezentacji wykorzystano ilustracje z: Scott Chancon, Pro Git, http://git-scm.com/book

Systemy kontroli wersji Rejestracja historii zmian. Zatwierdzanie nowych wersji. Zarządzanie rozgałęzieniami. Rozwiązywanie konfliktów.

Tryby działania Lokalna kontrola wersji (np. rcs). Scentralizowana kontrola wersji (np. CVS, Subversion). Rozproszona kontrola wersji (np. git, Mercurial).

Tryby działania Lokalna kontrola wersji (np. rcs). Scentralizowana kontrola wersji (np. CVS, Subversion). Rozproszona kontrola wersji (np. git, Mercurial).

Tryby działania Lokalna kontrola wersji (np. rcs). Scentralizowana kontrola wersji (np. CVS, Subversion). Rozproszona kontrola wersji (np. git, Mercurial).

Rozproszona kontrola wersji Każdy węzeł posiada całe repozytorium (z całą historią). Kontrola dostępu tylko na poziomie całego repozytorium. Istotny dobór odpowiedniej granulacji repozytoriów.

Struktura repozytorium git Typowe repozytorium składa się z: kopii roboczej (pliki i foldery), ukrytego katalogu.git zawierającego właściwe repozytorium (kolejne wersje, gałęzie). Utworzenie repozytorium zakotwiczonego w danym katalogu: git init

Przechowywanie danych Tradycyjny system kontroli wersji: Git:

Oznaczenia wersji 2e1a59f9e062019e83faa36b2d314c67d1d68510 3f6a956591ef80979c957d7fc5a5155505a40c9b aea3b733b81d1099945c198e48bbd3506f1ec95d 2945d9df1c50153cdbb3bebcdc7c191b73d4a9be d016e55316c0724cd339ec25596f2b6d305c0608

Operacje lokalne Checkout pobranie określonej wersji (lub gałęzi) z repozytorium. Stage umieszczenie pliku/ plików w przechowalni (ang. staging area). Commit zatwierdzenie zawartości przechowalni jako nowej wersji.

Pierwsze repozytorium Inicjalizacja nowego repozytorium w bieżącym katalogu: $ git init Dodanie kilku plików: $ git add *.c $ git add README Zatwierdzenie wersji: $ git commit -m pierwsza wersja

Cykl życia plików Możliwe wartości: untracked pliki w obszarze kopii roboczej, ale nie śledzone przez git, unmodified nie zmienione względem poprzedniej wersji, modified pliki zmienione, ale nie umieszczone w przechowalni do zatwierdzenia, staged przeznaczone do zatwierdzenia. Sprawdzanie stanu: $ git status

Wyświetlanie różnic i historii Różnice w zmienionych plikach: $ git diff Różnice w plikach w poczekalni: $ git diff --staged Wyświetlanie historii: $ git log

Zatwierdzanie zmian Zatwierdzenie zmian we wszystkich plikach w poczekalni: $ git commit -m opis Zatwierdzenie zmian we wszystkich zmodyfikowanych plikach: $ git commit -a -m opis

Cofanie zmian Modyfikacja ostatniej zatwierdzonej wersji: $ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend Usuwanie pliku z przechowalni: $ git reset HEAD benchmarks.rb Przywracanie ostatnio zatwierdzonej wersji pliku: $ git checkout -- benchmarks.rb

Gałęzie (branches) Każda zatwierdzona wersja zawiera m.in. wskaźnik do wersji, na której jest oparta. Gałąź to po prostu wskaźnik ja jedną z zatwierdzonych wersji. Każde repozytorium posiada domyślnie jedną gałąź o nazwie master.

Tworzenie gałęzi Nową gałąź (np. o nazwie testing) utworzyć można przy pomocy polecenia: $ git branch testing

Przełączanie gałęzi Utworzona gałąź nie staje się automatycznie gałęzią aktualną pozostaje nią gałąź master. Aktualną gałąź określa wskaźnik HEAD.

Przełączanie gałęzi Aby przełączyć aktualną gałąź: $ git checkout testing

Rozłączenie historii Jeżeli w każdej gałęzi dokonamy niezależnych zmian, historia repozytorium ulega rozłączeniu:

Scalanie gałęzi (merging) Operacja scalania polega na scaleniu wersji, na którą wskazuje określona gałąź z wersją, na którą wskazuje ta aktualnie wybrana: $ git merge nazwa_galezi Najczęściej kończy się w jeden z trzech sposobów: 1. Przesunięcie wskaźnika (fast-forward). 2. Automatyczne scalenie (recursive merge). 3. Wygenerowanie konfliktu.

Scalanie: fast-forward

Scalenie: recursive merge

Scalanie: konflikty Miejsca w plikach, których nie udało się scalić automatycznie, oznaczane są znacznikami zawierającymi obie konfliktujące wersje. Użytkownik musi wyczyścić pliki i ponownie wykonać operację commit.

Praca rozproszona Każda maszyna może komunikować się z dowolną liczbą innych maszyn (ang. remotes) posiadających to samo repozytorium. Typowym scenariuszem jest praca w topologii gwiazdy, a jedyny remote nosi wtedy nazwę origin. x

Sposoby połączenia z serwerem Protokół Git HTTP(S) SSH

Wymiana danych z serwerem Utworzenie lokalnego repozytorium na podstawie repozytorium z serwera: $ git clone <adres URL> Wysłanie swoich zmian (commitów) na serwer: $ git push origin master Pobranie nowych commitów z serwera jako osobną gałąź (rzadko stosowane): $ git fetch Pobranie nowych commitów z serwera i wykonanie scalenia (pull = fetch + merge): $ git pull

Systemy zarządzania repozytoriami Git w KIS RedMine: https://prj.kis.agh.edu.pl logowanie przy użyciu danych z Poczty AGH lub lokalnych nieograniczony dostęp spoza AGH i sieci AGH przeznaczenie przede wszystkim do projektów badawczych GitLab: https://gitlab.kis.agh.edu.pl logowanie przy użyciu lokalnych danych uwierzytelniających maszyna za firewallem AGH przeznaczenie przede wszystkim do projektów studenckich, prac dyplomowych