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



Podobne dokumenty
System kontroli wersji git

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Co zostanie wypisane na ekranie? (1)

Programowanie I

1 Tworzenie własnego zaproszenia dla powłoki bash

Zarządzanie projektami informatycznymi

Rozproszony system kontroli wersji GIT. Piotr Macuk

git krótki przewodnik

System kontroli wersji Git

1 Tworzenie własnego zaproszenia dla powłoki bash

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

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

Git rozproszony system kontroli wersji

Drupal i GIT. Schemat pracy.

Git, Bitbucket, IntelliJ IDEA

Programowanie zespołowe

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

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

Bezpieczeństwo systemów informatycznych

Systemy kontroli wersji

Open Source w służbie developerom

Git i platforma GitHub

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

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

SVN sojusz, partnerstwo, współpraca

Systemy zarządzania wersjami

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

Podstawowy warsztat informatyka

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Środowisko programisty. Środowisko programisty 1/35

System kontroli wersji GIT. Andrzej Śliwa. java4people 2009

Konfiguracja i administracja systemem kontroli wersji SVN

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

FTP SFTP, SCP. Strona1

Programowanie Systemów Wbudowanych

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

Usługi sieciowe systemu Linux

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

Instalacja i konfiguracja serwera SSH.

SUBVERSION TOMASZ ŁUKASZUK

CVS system kontroli wersji

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

Embedded GNU/Linux. Krzysztof Mazur

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

Programowanie zespołowe

Systemy kontroli wersji

Git Podstawowe pojęcia, instalacja i konfiguracja

Partnerzy: Laboratorium 15

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

Tworzenie oprogramowania

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Sieciowa instalacja Sekafi 3 SQL

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

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

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

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

Platformy Technologiczne

Ćwiczenia z Git cz. 2

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

MikroTik Serwer OpenVPN

Assembla.com zajęcia 1

Technologie Komponentowe. Piotr Łukasik p /

Xopero Backup Appliance

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

Instrukcja instalacji oprogramowania dla środowiska Linux

1. Konwencje przyjęte w instrukcji

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

Puppet Jak zacząć? Marcin Piebiak Linux Polska sp. z o.o.

GIT. Rozproszony system kontroli wersji

Git instrukcja dla studentów

Użytkowanie systemów kontroli wersji.

TortoiseHg + Windows konfiguracja

Instrukcja instalacji i konfiguracji APLIKACJI ECOCRAFT

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

System operacyjny Linux

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

Dodatki. Dodatek A Octave. Język maszyn

Acronis Universal Restore

Kopiowanie i instalowanie pliku w systemie Windows CE

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Bezpieczeństwo sieci komputerowych. dr inż. Andrzej Chmielewski Wydział Informatyki Politechniki Białostockiej

BACKUP BAZ DANYCH FIREBIRD

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

Qmail radość listonosza. Autorzy: Bartosz Krupowski, Marcin Landoch IVFDS

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

ZAPYTANIE OFERTOWE. Wsparcie projektów celowych

Praca w środowisku Cygwin. Przygotował Mateusz Dudek

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

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

Python. python 2, python 3 (nowsza specyfikacja języka, choć niekoniecznie częściej używana). Wymagane pakiety

Python. python 2, python 3 (nowsza specyfikacja języka, choć niekoniecznie częściej używana). Wymagane pakiety

Podręcznik administratora systemu

INSTALACJA LICENCJI SIECIOWEJ NET HASP Wersja 8.32

Wykaz zmian w programie SysLoger

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

INSTRUKCJA UŻYTKOWNIKA Generowanie Jednolitego Pliku Kontrolnego (JPK) ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Serwer pocztowy. QmaiLux. Dokumentacja techniczna mechanizmu książek adresowych (qbook)

Transkrypt:

Git - podstawy Błażej Kowalczyk Koło Naukowe Robotyków KoNaR 7 listopada 2014 łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 1 / 18

Wstęp Kontrola wersji Po co nam kontrola wersji? Cofanie zmian Kopia zapasowa Współpraca Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 2 / 18

Wstęp Kontrola wersji Centralne systemy kontroli wersji (SVN) Konieczność uruchamiania usługi Obciążenie serwera Dostępność serwera Powolne działanie wielu operacji Tylko jedna kopia zapasowa uwzględniająca historię i gałęzie Każda zatwierdzona zmiana jest widoczna przez wszystkich Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 3 / 18

Wstęp Kontrola wersji Rozproszone systemy kontroli wersji (Git) Może działać bez żadnego serwera Błyskawiczne operacje na historii i gałęziach Każdy posiada pełną kopię zapasową Rozdzielenie kontrolowania zmian i dzielenia się nimi Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 4 / 18

Pierwsze kroki Instalacje i konfiguracja Instalacja Linux yum install git apt-get install git cokolwiek install git Windows - MSysGit http://msysgit.github.io łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 5 / 18

Pierwsze kroki Instalacje i konfiguracja Podstawowa konfiguracja Dane użytkownika git config --global user.name "Jan Kowalski" git config --global user.email jan.kowalski@gmail.com Edytor git config --global core.editor notepad łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 6 / 18

Pierwsze kroki Instalacje i konfiguracja Klucze SSH Generujemy parę kluczy poleceniem ssh-keygen [gt@localhost ]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/gt/.ssh/id_rsa): Created directory /home/gt/.ssh. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/gt/.ssh/id_rsa. Your public key has been saved in /home/gt/.ssh/id_rsa.pub. The key fingerprint is: 4e:32:99:d2:cb:97:1b:32:ff:28:0b:48:05:1e:df:56 gt@localhost [gittest@localhost ]$ Dodajemy wpis do konfiguracji SSH (opcjonalne) echo StrictHostKeyChecking no >> /.ssh/config Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 7 / 18

Pierwsze kroki Instalacje i konfiguracja Lokalne repozytorium Lokalne repozytorium git zapewnia nam niemal wszystkie możliwości kontroli wersji (oprócz synchronizacji pracy z innymi programistami oraz, co oczywiste, kopii zapasowej). Wszystko co potrzebne dla działania takiego repozytorium znajduje się w katalogu naszego projektu. Takie repozytorium jest świetnym rozwiązaniem dla jednoosobowych projektów. Tworzymy nowe repozytorium w katalogu repo mkdir repo cd repo git init Dodajemy pierwszą zmianę do repozytorium echo Tekst >> plik git add plik git commit -m "pierwszy commit" łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 8 / 18

Pierwsze kroki Instalacje i konfiguracja Ignorowanie plików W większości przypadków przydatne może być dodanie do repozytorium pliku.gitignore. Określa on pliki, które mają nie być automatycznie dodawane do repozytorium, np. pliki tymczasowe, wyniki kompilacji, niektóre pliki środowiska programistycznego. Linie zaczynajace się od # to komentarze. Linie zaczynajace się od! to wyjątki do poprzednich reguł.gitignore # żadnych plików.a *.a # ale uwzględniaj lib.a!lib.a # ignoruj plik TODO, ale nie podkatalog /TODO /TODO # ignoruj wszystkie pliki znajdujące się w katalogu build/ build/ Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 9 / 18

Pierwsze kroki Zdalne repozytorium Serwer gita Nie istnieje de facto coś takiego jak serwer gita. Zamiast tego git zazwyczaj wykorzystuje transfer plików przez protokół SSH. Oznacza to, że możemy uruchomić zdalne repozytorium gita na każdym serwerze na którym posiadamy konto z dostępem SSH, bez konieczności instalowania bądź uruchamiania żadnych dodatkowych usług. Inną opcją jest skorzystanie z istniejących w sieci serwisów oferujących hosting gita, np: http://bitbucket.org - nieograniczona ilość prywatnych repozytoriów. W wersji darmowej maks. 5 użytkowników na repo. Wersja unlimited po dodaniu adresu @pwr.wroc.pl http://gitlab.com - nieograniczona ilość prywatnych repozytoriów, z nieograniczoną liczbą użytkowników. Rozbudowany system zarządzania uprawnieniami. Większość takich serwisów poza samym repozytorium oferują wbudowaną wiki i issue tracker dla naszych projektów. Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 10 / 18

Pierwsze kroki Zdalne repozytorium Repozytorium bare to takie, które nie posiada katalogu roboczego - służy tylko jako repozytorium zdalne. Zwyczaj każe nadawać im nazwy typu nazwa.git Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 11 / 18 Serwer z dostępem SSH 1 Wysyłamy swój klucz publiczny scp.ssh/id_rsa.pub user@server.com:klucz.pub 2 Dodajemy klucz (na serwerze) [user@localhost ]$ ssh user@server.com [user@server ]$ cat klucz.pub >>.ssh/authorized_keys [user@server ]$ chmod 700.ssh [user@server ]$ chmod 600.ssh/* 3 Inicjujemy repozytorium bare git init --bare repo.git

Pierwsze kroki Zdalne repozytorium Konfiguracja zdalnego repozytorium Zarówno w przypadku własnoręcznie konfigurowanego serwer, jak i serwisów hostingowych, praca ze zdalnym repozytorium wygląda podobnie: Pobieramy do nowej lokalizacji git clone user@server.com lub wysyłamy istniejące repozytorium lokalne cd repo git remote add origin user@server.com:repo.git git push --set-upstream origin master Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 12 / 18

Pierwsze kroki Podstawy pracy Schemat pracy 1 Wprowadzamy zmiany 2 Dodajemy pliki do śledzenia git add (pliki) 3 Zatwierdzamy zmiany - jak najczęściej git commit 4 Pobieramy zmiany z serwera - zawsze przed push! git pull 5 Wysyłamy zmiany na serwer git push łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 13 / 18

Pierwsze kroki Podstawy pracy Przydatne komendy git add. #dodaj wszytskie pliki do śledzenia git commit -a # zatwierdź wszystkie zmienione pliki git commit --ammend #zmień ostatni commit git stash # schowaj zmiiany od ostatniego commita git stash apply # przywróć schowane zmiany git reset --hard HEAD #usuń niezatwierdzone zmiany git reset HEAD n #cofnij całe repozytorium o n zmian Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 14 / 18

Gałęzie Gałęzie Szybkie przełączanie między wersjami Łatwy powrót do działającej wersji (bez wyrzucania zmian) Możliwość równoległego rozwoju różnych funkcji, pomysłów itd. Kiedy warto tworzyć nową gałąź? Zawsze Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 15 / 18

Gałęzie Tworzenie nowych gałęzi Tworzenie gałęzi Nowa gałąź git branch nowa git checkout nowa lub git checkout -b nowa Przenieś niezatwierdzone zmiany do nowej gałęzi git stash git stash branch nowa łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 16 / 18

Gałęzie Łączenie gałęzi Merge Tworzy nowy punkt (commit) łączący gałęzie Nie narusza historii zmian ale czyni ją mniej czytelną Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 17 / 18

Gałęzie Łączenie gałęzi Merge Tworzy nowy punkt (commit) łączący gałęzie Nie narusza historii zmian ale czyni ją mniej czytelną Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 17 / 18

Gałęzie Łączenie gałęzi Rebase Przenosi zmiany i nanosi je od nowa Tworzy czytelną liniową historię zmian Nie można stosować do gałęzi, które były udostępnione Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 18 / 18

Gałęzie Łączenie gałęzi Rebase Przenosi zmiany i nanosi je od nowa Tworzy czytelną liniową historię zmian Nie można stosować do gałęzi, które były udostępnione Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 18 / 18

Gałęzie Łączenie gałęzi Rebase Przenosi zmiany i nanosi je od nowa Tworzy czytelną liniową historię zmian Nie można stosować do gałęzi, które były udostępnione Błażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 18 / 18