Programowanie Systemów Wbudowanych

Podobne dokumenty
GIT. System Kontroli wersji GIT. Rafał Kalinowski

Rozproszony system kontroli wersji GIT. Piotr Macuk

Subversion - jak dziaªa

Programowanie I

Co zostanie wypisane na ekranie? (1)

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

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

System kontroli wersji git

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

Git rozproszony system kontroli wersji

Systemy kontroli wersji

System kontroli wersji Git

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

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

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

git krótki przewodnik

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

System kontroli wersji GIT. Andrzej Śliwa. java4people 2009

Programowanie zespołowe

CVS system kontroli wersji

Narzędzia programistyczne - GIT

Podstawowy warsztat informatyka

Git i platforma GitHub

Programowanie Zespołowe

Git, Bitbucket, IntelliJ IDEA

Git - Rozproszony System Kontroli Wersji

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

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

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

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

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

System kontroli wersji SVN

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

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

1 Tworzenie własnego zaproszenia dla powłoki bash

SUBVERSION TOMASZ ŁUKASZUK

Zarządzanie projektami informatycznymi

Podstawowy warsztat informatyka

Git Podstawowe pojęcia, instalacja i konfiguracja

SVN sojusz, partnerstwo, współpraca

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

Jacek WOŁOSZYN AUTOMATYZACJA PROCESU ARCHIWIZACJI PRZYROSTOWEJ DANYCH Z WYKORZYSTANIEM GIT AUTOMATING THE PROCESS OF INCREMENTAL BACKUP DATA USING GIT

Systemy zarządzania wersjami

Środowisko programisty. Środowisko programisty 1/35

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Konfiguracja i administracja systemem kontroli wersji SVN

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

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

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Partnerzy: Laboratorium 15

Ćwiczenia z Git cz. 2

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Programowanie i struktury danych 1 / 44

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

Systemy Kontroli Wersji

Praca Dyplomowa Magisterska

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL

System zarządzania wersjami I Subversion

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

Bash - wprowadzenie. Bash - wprowadzenie 1/39

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

Lekcja 6 Programowanie - Zaawansowane

GIT. Rozproszony system kontroli wersji

Drupal i GIT. Schemat pracy.

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

łatki darcs w praktyce darcs system kontroli wersji dla wybrednych Paweł Kołodziej 16 grudnia 2008

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Dyskretyzacja i kwantyzacja obrazów

Instrukcja programu PControl Powiadowmienia.

1 Tworzenie własnego zaproszenia dla powłoki bash

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Embedded GNU/Linux. Krzysztof Mazur

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Sieci i systemy operacyjne I Ćwiczenie 3. Przekierowania strumieni we/wy. Filtry.

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna

Open Source w służbie developerom

Programowanie zespołowe

Analiza wydajno±ci serwera openldap

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

JMMS Instrukcja użytkowania kont Autor oraz Recenzent

Laboratorium Sieci Komputerowych - 1

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

Pracownia internetowa w ka dej szkole (edycja 2004)

API transakcyjne BitMarket.pl

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

Konfiguracja historii plików

Technical Reference - Q&A TSD-QA (2012/02)

Automatyzacja procesu publikowania w bibliotece cyfrowej

Rozwi zania klasycznych problemów w Rendezvous

2 Skªadnia polece«w pliku

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

Dostp do zasobów dyskowych uytkowników lcme10 przez protokół SMB (Microsoft Networking)

Uywanie licencji typu Standalone. Japanese Using a Standalone License. Language. Contents

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Dost p do baz danych

Subversion. System wersjonowania projektów. Instytut Informatyki Politechnika Poznańska

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Lekcja 12 - POMOCNICY

Transkrypt:

Programowanie Systemów Wbudowanych Wprowadzenie do Systemu Kontroli Wersji GIT ¹ródªo: git-scm.com dr in». Krzysztof Czarnecki Wydziaª Elektroniki,Telekomunikacji i Informatyki Politechnika Gda«ska 2015

Lokalne systemy kontroli wersji

Scentralizowane systemy kontroli wersji

Rozproszone systemy kontroli wersji

Krótka historia Git Do 2002 roku wszelkie zmiany kodu j dra Linuksa byªy przekazywane jako ªaty (ang. patches) i zarchiwizowane pliki. W 2002 roku wprowadzono system kontroli wersji tego projektu o nazwie DVCS BitKeeper. Spoªeczno± rozwijaj ca j dro Linuksa mogªa korzysta z niego nieodpªatnie. W 2005 roku pozwolenie na nieodpªatne u»ywanie systemu zostaªo cofni te. Stworzenie wªasnego DVCS na podstawie wiedzy wyniesionej z u»ywania BitKeepera (inicjatorem byª Linus Torvalds). Do celów tego nowego systemu nale»aªy: szybko± prosta konstrukcja wsparcie dla nieliniowego rozwoju (wielu równolegªych gaª zi) peªne rozproszenie wydajna obsªuga du»ych projektów Git ewoluowaª i ustabilizowaª si jako narz dzie ªatwe w u»yciu. Jest niewiarygodnie szybki, wydajny przy pracy z du»ymi projektami i posiada system gaª zi do nieliniowego rozwoju.

Inne systemy kontroli wersji sposób przechowywania plików

GIT sposób przechowywania plików

Cechy Git Niemal ka»da operacja jest lokalna du»a szybko± dziaªania mo»liwo± pracy oine mo»liwo± manipulowania prawami dost pu do plików Git ma wbudowane mechanizmy spójno±ci danych zabezpieczenie przed niepowoªanymi modykacjami w historii zmian zabezpieczenie przed przypadkowym uszkodzeniem pliku stosowanie mechanizmów kryptograi kluczy SHA-1 Standardowo Git wyª cznie dodaje nowe dane wszystkie zmiany s rejestrowane mo»liwo± utraty danych jest bardzo ograniczona

Podstawowe tryby w jakich mo»e znale¹ si plik

Instalacja GIT Zostaª zaprojektowany i w du»ej mierze zaimplementowany przez Linusa Torvaldsa i to si czuje. ródªa: http://git-scm.com/download ródªa: git clone git://git.kernel.org/pub/scm/git/git.git Debian: apt-get install git Fedora: yum install git-core Windows, OS X (Apple)...

Polecenia GIT add Add le contents to the index bisect Find by binary search the change that introduced a bug branch List, create, or delete branches checkout Checkout a branch or paths to the working tree clone Clone a repository into a new directory commit Record changes to the repository di Show changes between commits, commit and working tree, etc fetch Download objects and refs from another repository grep Print lines matching a pattern init Create an empty Git repository or reinitialize an existing one log Show commit logs merge Join two or more development histories together mv Move or rename a le, a directory, or a symlink pull Fetch from and integrate with another repository or a local branch push Update remote refs along with associated objects rebase Forward-port local commits to the updated upstream head reset Reset current HEAD to the specied state rm Remove les from the working tree and from the index show Show various types of objects status Show the working tree status tag Create, list, delete or verify a tag object signed with GPG

Konguracja GIT Pliki konguracyjne: /etc/gitcong (system), system /.gitcong (u»ytkownik), global.git/cong (projekt), local Przykªady: git cong global user.name "Jan Nowak" git cong global user.email jannowak@example.com git cong system core.editor emacs git cong local merge.tool vimdi git cong list git cong user.name

Pomoc do GIT Uzyskanie pomocy oine: git help <polecenie> git <polecenie> help man git man git <polecenie> Przykªad: git help cong

Inicjacja repozytorium GIT Utworzenie nowego pustego repozytorium: git init (lokalnie w bie» cym katalogu) git init bare (na serwerze w bie» cym katalogu) Po wykonaniu powy»szych polece«git init w bie» cym katalogu powinien zosta utworzony katalog.git zawieraj cy puste repozytorium GIT, pliki projektu powinny znajdowa si poza tym katalogiem. Skopiowanie istniej cego repozytorium ze zdalnego serwera: git clone git://github.com/project.git (kopiowanie z serwera github) git clone ssh://somehost.pl:/srv/project.git (kopiowanie z serwera ssh) Po wykonaniu powy»szych polece«git clone powinien zosta utworzony katalog project z repozytorium GIT oraz najnowsz wersj projektu. git clone git://github.com/project.git new-project. Tak jak git clone z t ró»nic,»e katalogowi zostanie nadana nazwa new-project.

Statusy plików

Rejestrowanie zmian w repozytorium GIT git add - rozpocz cie ±ledzenia plików (równie» dodanie plików do poczekalni) git rm - usuwanie plików z repozytorium GIT git status - sprawdzanie statusu plików git di - sprawdzanie zmian w plikach git commit - wprowadzanie zmian do repozytorium Polecenie git commit wymaga podania opisu wprowadzanych zmian. Raz dodane zmiany powinny pozosta w repozytorium ju» na zawsze, dlatego nale»y je wprowadza starannie. git commit a - wprowadzanie zmian do repozytorium z automatycznym dodaniem do poczekalni ±ledzonych plików, które zostaªy zmodykowane git commit amend - jedyna mo»liwo± modykacji ostatniej wprowadzonej lokalnie zmiany. Nie zaleca si modykacji starszych wersji GIT nie udost pnia prostych mechanizmów pozwalaj cych na takie modykacje.

Przykªadowy scenariusz (w powªoce bash) mkdir projekt cd projekt git init git cong local user.name "Programista X" echo "linia 1" > plik.txt git add plik.txt # repozytorium ±ledzi zmiany tylko jednego pliku git commit -a -m "Komentarz 1" echo "linia 2" > plik.txt git commit -a -m "Komentarz 2" echo "linia 3" >> plik.txt git commit -a -m "Komentarz 3" gitg # narz dzie gitg pozwala na przegl danie historii zmian # podobnie jak git log w trybie tekstowym

Zrzut ekranu dla scenariusza

Przegl danie zmian - git log git log pretty=oneline 51874295d21ebb62b762274422449e161ad4857a Komentarz 3 2f1e892602ed65f98362bad4824f8355a650a615 Komentarz 2 7d08a276f783a110d65d0c01ec9b98d2edb317de Komentarz 1 git log -p -1 commit 51874295d21ebb62b762274422449e161ad4857a Author: Programista X <krzycz@eti.pg.gda.pl> Date: Sun Mar 29 00:51:18 2015 +0100 Komentarz 3 di git a/plik.txt b/plik.txt index ce5eebd..1f2bd3d 100644 a/plik.txt + + + b/plik.txt @@ 1 +1,2 @@ linia 2 +linia 3

Cofanie zmian, tagowanie i wczytywanie poprzednich wersji projektu git checkout <nazwa-pliku> - cofanie zmian do ostatniej zachowanej wersji pliku <nazwa-pliku> git checkout <nazwa-wersji> - cofanie zmian do wybranej wersji projektu (zostanie zaktualizowany caªy katalog) nazwa wersji to nazwa gaª zi (np. master) git tag - wy±wietli wszystkie etykiety git tag -a <nazwa-etykiety> - dodawanie nowej etykiety git checkout <nazwa-etykiety> - wczytanie wersji opatrzonej etykiet git show <nazwa-etykiety> - wy±wietlenie informacji o wersji git tag -d <nazwa-etykiety> - usuwanie etykiety

Przykªadowy scenariusz (kontynuacja) git tag -a ver.1 -m "Wersja 1" echo "linia 4" >> plik.txt git commit -a -m "Komentarz 4" cat plik.txt linia 2 linia 3 linia 4 git checkout ver.1 cat plik.txt linia 2 linia 3

Zrzut ekranu dla scenariusza

git show ver.1 Przegl danie zmian - git show tag ver.1 Tagger: Programista X <krzycz@eti.pg.gda.pl> Date: Sun Mar 29 03:37:13 2015 +0200 Wersja 1 commit 51874295d21ebb62b762274422449e161ad4857a Author: Programista X <krzycz@eti.pg.gda.pl> Date: Sun Mar 29 00:51:18 2015 +0100 Komentarz 3 di git a/plik.txt b/plik.txt index ce5eebd..1f2bd3d 100644 a/plik.txt + + + b/plik.txt @@ 1 +1,2 @@ linia 2 +linia 3

Tworzenie, usuwanie i ª czenie lokalnych gaª zi GIT git branch - wypisuje list gaª zi git branch <nazwa-gaª zi> - dodawanie nowej gaª zi Po dodaniu nowej gaª zi nale»y si na ni przeª czy wydaj c polecenie git checkout <nazwa-gaª zi>. git branch -d <nazwa-gaª zi> - usuwanie gaª zi git branch -D <nazwa-gaª zi> - usuwanie gaª zi git merge <nazwa-gaª zi> - ª czenie gaª zi Aby zª czy 2 gaª zie nale»y si przeª czy na jedn z nich, a nast pnie wyda polecenie git merge z argumentem b d cym nazw drugiej gaª zi.

Przykªadowy scenariusz (kontynuacja) git branch test # utworzenie nowej gaª zi o nazwie test echo "linia 5" >> plik.txt git commit -a -m "Komentarz 5" # te zmiany zostan wª czone do gaª zi master git checkout test # dopiero po przeª czeniu si na gaª ¹ test... echo "linia 5 (test)" >> plik.txt git commit -a -m "Komentarz 1 w test" #... jest mo»liwe wprowadzanie zmian git checkout master # nowe kody z g. test chcemy wª czy do g. master git merge test # git stara si przeprowadzi ª czenie automatycznie <<<<<<< HEAD # mog jednak wyst pi konikty... linia 5 ======= linia 5 (test) >>>>>>> test #... które nale»y rozwi za r cznie git commit -a # je»eli wyst piªy konikty potrzebny jest commit

Zrzut ekranu dla scenariusza

Wysyªanie i pobieranie zmian z zewn trznego repozytorium GIT git clone - klonowanie zdalnego repozytorium Je»eli repozytorium zostaªo sklonowane z zewn trznego serwera, mo»e istnie mo»liwo± wysyªania zmian oraz aktualizacji tego repozytorium. git branch set upstream <nazwa-gaª zi> Nale»y pami ta,»e lokalne gaª zie trzeba powi za ze zdalnymi odpowiednikami oraz ustawi w tryb ±ledzenia git fetch - pobranie zmian z serwera - aktualizacja zdalnych gaª zi, których kopie przechowywane s lokalnie. git pull - pobranie zmian z serwera - aktualizacja zdalnych gaª zi oraz próba zª czenia ich lokalnych kopii z lokalnymi odpowiednikami. Prosz zwróci uwag,»e w zasadzie trywialny scenariusz ze zdalnym serwerem dotyczy sytuacji w której mog istnie, a» 3 wersje jednej gaª zi: lokalna, zdalna w lokalnym systemie plików oraz zdalna na serwerze. git push - wysyªanie zmian do zdalnego repozytorium Aby operacja si powiodªa nale»y najpierw zaktualizowa lokalny katalog.

Schowek GIT Je»eli programista wprowadziª zmiany w lokalnym repozytorium GIT, ale równolegle serwer zostaª zsynchronizowany z inn wersja projektu serwer nie przyjmie zmian i po wydaniu komendy git push zwróci bª d. Aby nie straci zmian a przy tym zaktualizowa lokalny katalog mo»na u»y komendy: git stash. Spowoduje ona przeniesienie wszystkich zmian od ostatniego wprowadzenia ich do repozytorium. Po tej operacji mo»na bezpiecznie zaktualizowa lokalny projekt git pull oraz nadpisa na nim zmiany ze schowka: git stash apply. Operacja ta mo»e wygenerowa konikty, które nale»y rozwi za r cznie podobnie jak to miaªo miejsce po wydaniu komendy git merge.

Dzi kuj za uwag krzycz@eti.pg.gda.pl