Programowanie I C / C++ laboratorium 14 --

Transkrypt

Programowanie I C / C++ laboratorium 14 --
System kontroli wersji
Wskazówki
Programowanie I C / C++
laboratorium 14 — git
Jarosław Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2013-05-22
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
strona projektu http://git-scm.com/
repozytorium projektów publicznych https://github.com/
inne systemy: subversion, mercurial...
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Cykl użycia (wersja scentralizowana)
tworzenie projektu
wprowadzenie zmian
przeglądanie statusu / logu
potwierdzanie zmian (commit)
publikowanie
rozwiązywanie konfliktów
pobieranie nowej wersji
(goto 2)
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Tworzenie repozytorium
git init -- bare
tylko jeden raz
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Skopiowanie projektu z repozytorium
git clone login@host :~/ projekt . git / ./ roboczy
tylko jeden raz
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Dodane plików / dopisanie funkcjonalności
poza gitem:
vim program . c
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Przegląd zmian
zmiany
git status
dodanie zmienionych plików
git add program . c
git rm stary_plik . c
git mv poprzedni . c aktualny . c
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Potwierdzenie zmian (lokalne)
zmiany
git commit -m " Krotki opis zmian "
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Potwierdzenie zmian (publiczne)
wypchnięcie do repozytorium
git push
lub
git push login@host :~/ projekt . git /
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Pobranie zmian
pobranie zmian (być może wprowadzone przez inną osobę)
git pull
lub
git pull login@host :~/ projekt . git /
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Log
historia commitów
git log -- oneline
graf commitów
git log -- graph
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
Diff
zmiany w plikach
git diff
git diff plik
git diff a1b2c3d4e5 plik
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
merge
W sytuacji gdy powstały dwie odnogi
wersja bez konfliktu
git fetch
git merge
git commit
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
merge
W sytuacji gdy powstały dwie odnogi
wersja bez konfliktu
git fetch
git merge
punkt niewykonalny!
trzeba ręcznie usunąć konflikty (git diff będzie pomocny)
git diff plik . c
vi plik . c
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
git
Cykl użycia
Inne
Łączenie zmian
merge
usuwamy konflikty
git diff plik . c
vi plik . c
po rozwiązaniu wszystkich konfliktów:
git merge klucz_commita
git commit
git push
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14
System kontroli wersji
Wskazówki
Wskazówki
Położenie repozytorium
(stan na 2013-05) git w systemie komputerowym WMiI: sxterm
i aleks-2
VPN do sieci wydziałowej w przypadku pracy z zewnątrz
serwis hostujący repozytoria (publiczne za darmo, prywatne są
płatne) https://github.com/
podręcznik: E. Sink Version Control by Example
http://www.ericsink.com/vcbe/
J. Piersa
Pr. C/C++ 2012/2013 Laboratorium 14