1/128
System Kontroli Wersji
GIT
2/128
System Kontroli Wersji
●
System kontroli wersji to oprogramowanie które pomaga śledzić zmiany w kodzie na przestrzeni czasu.
●
System kontroli wersji zapamiętuje konkretny stan danego kodu - i pozwala później odzyskać zapamiętaną wersję.
– Dzięki temu, że ma zapisanych kilka wersji tego samego kodu razem z oznaczeniem czasowym, może również porównać wersje ze sobą i jasno wyszczególnić zmimany.
●
Pozwala na automatyczne przechowywanie, odzyskiwanie,
logowanie i scalanie wersji kodu.
3/128
System Kontroli Wersji
●
Prosty system kontroli wersji:
–
Stworzenie katalogu o nazwie “projekt”
–
Sukcesywne tworzenie wewnątrz podkatalogów z nazwami “projekt_v1”,
“projekt_v2” i umieszczanie w nim konkretnych wersji kodu
●
Można nawet profesjonalnie poprawić system, używając dat zamiast zwykłych v1,
v2 ... v223
4/128
System Kontroli Wersji
5/128
System Kontroli Wersji
●
System kontroli wersji pomaga z:
– Tworzeniem backup-ów
● Oczywiste i niezbędne. Jak komputer się spali albo dysk wysiądzie, mamy kopie zapasową.
– Odtwarzanie poprzednich wyników
● Pozwala zawsze wrócić i uruchomić poprzednią wersję programu.
– Porównywaniem konkretnej wersji
● “W wersji z piątku ten guzik jeszcze działał! Co zmieniliśmy?”
– Rozwój kilku wersji równocześnie
● Jeśli dwie osoby chcą pracować jednocześnie nad tym samym projektem, system kontroli wersji pomoże bezboleśnie scalić ich pracę
– Workfows – zachowywanie uprawnień oraz kontroli nad kodem
● W firmach zwykle dany kawałek kodu jest dołączany do programu dopiero po zrecenzowaniu przez starszego programistę.
http://www.ateam-oracle.com/version-control/
6/128
System Kontroli Wersji
http://cswsolutions.com/blog/git-non-developers-part-ii/
/ trunk
7/128
Kontrola wersji
●
Lokalna kontrola wersji
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
8/128
Kontrola wersji
●
Lokalna kontrola wersji
●
Centralizowana kontrola wersji
– Subversion (SVN)
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
9/128
Kontrola wersji
●
Lokalna kontrola wersji
●
Centralizowana kontrola wersji
– Subversion (SVN)
●
Rozproszona kontrola wersji
– GIT
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
10/128
Kontrola wersji
●
Lokalna kontrola wersji
●
Centralizowana kontrola wersji
– Subversion (SVN)
●
Rozproszona kontrola wersji
– GIT
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
Każdy ma swoją replikę (klon)
repozytorium pu sh
pu ll
11/128
GIT w praktyce
●
Co zrobić aby używać GITa?
–
Zainstalować program GIT https://git-scm.com/downloads.
–
Wybrać serwer na którym będzie przechowywane centralne repozytorium
–
Stworzyć nowe repozytorium (centralne) dla projektu
–
Pobrać kod, tworząc przy okazji lokalne repozytorium
●
Korzystanie z GITa:
–
Dodawać, usuwać, modyfikować kod i pliki
–
Update lokalnego repozytorium
–
Update centralnego repozytorium
●
Więcej informacji można znaleźć w:
–
https://guides.github.com/activities/hello-world/
–
http://namiekko.pl/2016/03/05/no-i-git-kontrola-wersji-sluzy-nie-tylko-programistom/
–
http://namiekko.pl/2016/03/13/git-przedzieram-sie-przez-galezie/
–
http://namiekko.pl/2016/03/12/git-w-eclipse/
12/128
GIT w praktyce
●
Co zrobić aby używać GITa?
–
Zainstalować program GIT https://git-scm.com/downloads.
–
Wybrać serwer na którym będzie przechowywane centralne repozytorium
–
Stworzyć nowe repozytorium (centralne) dla projektu
–
Pobrać kod, tworząc przy okazji lokalne repozytorium
●
Korzystanie z GITa:
–
Dodawać, usuwać, modyfikować kod i pliki
–
Update lokalnego repozytorium
–
Update centralnego repozytorium
●
Więcej informacji można znaleźć w:
–
https://guides.github.com/activities/hello-world/
–
http://namiekko.pl/2016/03/05/no-i-git-kontrola-wersji-sluzy-nie-tylko-programistom/
–
http://namiekko.pl/2016/03/13/git-przedzieram-sie-przez-galezie/
–
http://namiekko.pl/2016/03/12/git-w-eclipse/
13/128
Serwery na repozytoria GITa
https://github.com/
https://gitlab.com/
https://bitbucket.org/
14/128
GIT w praktyce
●
Co zrobić aby używać GITa?
–
Zainstalować program GIT https://git-scm.com/downloads.
–
Wybrać serwer na którym będzie przechowywane centralne repozytorium
–
Stworzyć nowe repozytorium dla projektu
–
Pobrać kod, tworząc przy okazji lokalne repozytorium
●
Korzystanie z GITa:
–
Dodawać, usuwać, modyfikować kod i pliki
–
Update lokalnego repozytorium
–
Update centralnego repozytorium
●
Więcej informacji można znaleźć w:
–
https://guides.github.com/activities/hello-world/
–
http://namiekko.pl/2016/03/05/no-i-git-kontrola-wersji-sluzy-nie-tylko-programistom/
–
http://namiekko.pl/2016/03/13/git-przedzieram-sie-przez-galezie/
–
http://namiekko.pl/2016/03/12/git-w-eclipse/
15/128
Nowe repozytorium
centralne
16/128
GIT w praktyce
●
Co zrobić aby używać GITa?
–
Zainstalować program GIT https://git-scm.com/downloads.
–
Wybrać serwer na którym będzie przechowywane centralne repozytorium
–
Stworzyć nowe repozytorium dla projektu
–
Pobrać kod, tworząc przy okazji lokalne repozytorium
●
Korzystanie z GITa:
–
Dodawać, usuwać, modyfikować kod i pliki
–
Update lokalnego repozytorium
–
Update centralnego repozytorium
●
Więcej informacji można znaleźć w:
–
https://guides.github.com/activities/hello-world/
–
http://namiekko.pl/2016/03/05/no-i-git-kontrola-wersji-sluzy-nie-tylko-programistom/
–
http://namiekko.pl/2016/03/13/git-przedzieram-sie-przez-galezie/
–
http://namiekko.pl/2016/03/12/git-w-eclipse/
17/128
Pobieranie kodu z repozytorium Tworzenie repozytorium lokalnego
●
Pobrać kod, tworząc repozytorium lokalne:
– Zdobywamy link URL do repozytorium
– clone – używamy polecenia clone w wybranym przez nas miejscu.
●
git clone https://github.com/login/NazwaProjektu
18/128
Clone URL
– Po wykonaniu klonowania mamy na
komputerze repozytorium lokalne
19/128
GIT w praktyce
●
Co zrobić aby używać GITa?
–
Zainstalować program GIT https://git-scm.com/downloads.
–
Wybrać serwer na którym będzie przechowywane centralne repozytorium
–
Stworzyć nowe repozytorium dla projektu
–
Pobrać kod, tworząc przy okazji lokalne repozytorium
●
Korzystanie z GITa:
–
Dodawać, usuwać, modyfikować kod i pliki
–
Update lokalnego repozytorium
–
Update centralnego repozytorium
●
Więcej informacji można znaleźć w:
–
https://guides.github.com/activities/hello-world/
–
http://namiekko.pl/2016/03/05/no-i-git-kontrola-wersji-sluzy-nie-tylko-programistom/
–
http://namiekko.pl/2016/03/13/git-przedzieram-sie-przez-galezie/
–
http://namiekko.pl/2016/03/12/git-w-eclipse/
20/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull
21/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working dir Wprowadzam jakies zmiany lalala; README.md
Untracked files:
(use "git add <file>..." to include in what will be committed) test.txt
no changes added to commit (use "git add" and/or "git commit -a")
“master” - główna i domyślna
gałąź repozytorium
22/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working dir Wprowadzam jakies zmiany lalala; README.md
Untracked files:
(use "git add <file>..." to include in what will be committed) test.txt
no changes added to commit (use "git add" and/or "git commit -a")
Sugestie co zrobić ze zmianami:
add / checkout
23/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull
24/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull
$ git add test.txt
$ git add *
$ git status
On branch master
Your branch is up-to-date with 'origin/
Changes to be committed:
(use "git reset HEAD <file>..." to un modified: README.md
new file: test.txt Jeśli:
●
Zmodyfikowałam plik README.md
●
Stworzyłam nowy plik test.txt
Chciałabym zapisać te zmiany w repozytorium, więc:
●
Używam “add” na wszystkich plikach których zmiany chcę zapisać
●
tzw. ‘Staging’ - przygotowywuję pliki
●
Używam “status” żeby zobaczyć, czy wszystko jest w porządku
25/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull git commit
●
Używam “commit” żeby zapisać te zmiany
$ git commit -m "Moj pierwszy commit z lokalnego repo"
[master 09ba074] Moj pierwszy commit z lokalnego repo 2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 test.txt
●
lub ‘commit -m “komentarz” ‘ żeby dodać komentarz
26/128
Korzystanie z GITa
●
Dodawanie, usuwanie, modyfikacja plików
– Tak samo, jak zawsze: modyfikujemy pliki lokalnie na własnym komputerze
– Do śledzenia aktualnych zmian służy polecenie status
●
Update lokalnego repozytorium
– Żeby nasze zmiany zostały zauważone i zapamiętane przez lokalne repozytorium
– Polecenia add i commit
●
Update centralnego repozytorium
– Polecenie push
– Oraz ściągnięcie danych z centralnego repozytorium: pull
$ git push
$ git pull
27/128
Korzystanie z GITa
●
Zmieniłam lokalnie plik test1.txt oraz dodałam nowy plik test2.txt. Chcę je wypchnąć do
centralnego repozytorium. Co robię?
$ git status
$ git add test1.txt
$ git add test2.txt
$ git status
$ git commit -m "Test changes”
$ git pull
$ git push
$ git add *
”$” oznacza nowe polecenie w konsoli; nie należy go wpisywać.
28/128
Git w Eclipse - EGit
Help->Install New Software->http://download.eclipse.org/egit/updates/
29/128
Stworzenie nowego projektu w oparciu o istniejące repozytorium.
Git w Eclipse - EGit
Import… →
Projects from Git
30/128
Mamy dwie opcje: stworzyć projekt na podstawie istniejącego, lokalnego
repozytorium
(bo np. użyliśmy clone w lini komand jak było pokazane wcześniej)….
Git w Eclipse - EGit
31/128
Git w Eclipse - EGit
Albo klonować bezpośrednio z repozytorium centralnego
Mamy dwie opcje: stworzyć projekt na podstawie istniejącego, lokalnego
repozytorium
(bo np. użyliśmy clone w lini komand
jak było pokazane wcześniej)….
32/128
Musimy wybrać gałęzie do sklonowania z repozytorium.
Domyślnie będzie to główna gałąź
“master”.
Git w Eclipse - EGit
Import z projektu Gita przeprowadza nas przez kolejne okienka
kreatora…
33/128
Odkliknij „use default location” i wybierz katalog
w którym znajduje się repozytorium!
(inaczej import zwróci błąd)
“General project” dobrze zadziała dla wszystkich repozytoriów,
gdzie nie mamy i nie chcemy mieć projektu eclipse’a.
“Import using the New Project Wizard” jeśli w stworzonym
repozytorium centralnym chcemy utworzyć nowy projekt eclipse.
(1)
(2)
34/128
A jeśli już mam mój projekt?
Jeśli nie chcę importować projektu z zewnątrz, tylko chcę “wypchnąć”
istniejący projekt do repozytorium: Projekt Team Share Project... → →
Ponownie eclipse przeprowadzi nas
przez kolejne okienka kreatora…
35/128
Commit, push...
Git natychmiast bardzo wyraźnie ( > ) sygnalizuje te zmiany.
Wyświetlenie menu kontroli wersji (Team w menu kontekstowym projektu).
Jeśli wybierzemy “Commit...” pojawi nam się przyjazne okienko wktórym
wybieramy pliki które chcielibyśmy wypchnąć do repozytorium:
- lokalnego (Commit)
- zarówno lokalnego i centralnego (Commit and Push)
36/128
GIT w praktyce
●
Co zrobić aby używać GITa?
– Zainstalować program GIT https://git-scm.com/downloads
– Wybrać serwer na którym będzie przechowywane centralne repozytorium https://github.com/
– Zainstalować odpowiednią wtyczkę do eclipse’a
Help→ Install New Software → http://download.eclipse.org/egit/updates/
●
Więcej informacji można znaleźć w:
–
https://guides.github.com/activities/hello-world/
–
http://namiekko.pl/2016/03/05/no-i-git-kontrola-wersji-sluzy-nie-tylko-programis tom/
–
http://namiekko.pl/2016/03/13/git-przedzieram-sie-przez-galezie/
–