Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 3 Git, Bitbucket, IntelliJ IDEA Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2
Technologie Technologie będące przedmiotem laboratorium: Git - definicja Git - wolnodostępny, rozproszony system kontroli wersji. Git - downloads https://git-scm.com/downloads Git - dostęp z poziomu wiersza poleceń / terminala Git - dostęp z poziomu wiersza poleceń / terminala: Windows: win + r, komenda cmd, Linux: ctrl + alt + t, 1
Mac OSX: cmd + spacja, wyszukaj: terminal. Git - konfiguracja Git - konfiguracja: Ustawienia: git config list, Nazwa użytkownika: git config global user.name Jan Kowalski, Email użytkownika: git config global user.email jan@o2.pl. Git - konfiguracja (przykład): 2
Git - repozytorium Repozytorium - miejsce przechowywania zmian. Git - przepływ pracy Twoje lokalne repozytorium składa się z trzech drzew zarządzanych przez git. Pierwsze to Katalog Roboczy, który przechowuje bieżące pliki. Drugie to Index, które działa jak poczekalnia i ostatnie z nich to HEAD, które wskazuje na ostatni utworzony commit. IntelliJ IDEA & Git Przed przystąpieniem do działania nad nowym repozytorium należy sprawdzić czy Git jest skonfigurowany poprawnie w zintegrowanym środowisku programistycznym. Aby sprawdzić konfigurację należy przejść do Configure Preferences (Widok powitalny IntelliJ IDEA). 3
Po przejściu do Version Control Git mamy możliwość modyfikacji ścieżki do systemu kontroli wersji (jeśli nie możemy znaleźć w systemie ścieżki do katalogu bin Git a wówczas niezbędna będzie instalacja systemu kontroli wersji git w systemie operacyjnym). Sprawdzenie poprawności konfiguracji odbywa się przy pomocy buttona Test. Po kliknięciu powinniśmy dostać odpowiedź: Git Executed Successfully. 4
Jeśli w odpowiedzi dostaniemy powyższy komunikat oznacza to, że system kontroli wersji Git jest zintegrowany z IntelliJ IDEA. Możemy przystąpić do dalszych prac. ➀ Tworzenie nowego projektu Bardzo proszę o utworzenie nowego projektu nisp lab 03 zgodnie z poniższymi screenami: 5
6
Po utworzeniu nowego projektu należy skopiować poniższy kod do głównego pliku projektu: class EmptyDataException extends Exception {} class Main { private final static String ERROR_EMPTY_DATA = "Tablica nie moze byc pusta!"; private static int getminfromdigits(integer[] digits) throws EmptyDataException { } return Arrays.stream(digits == null? new Integer[]{} : digits).min(integer::compare).orelsethrow(emptydataexception::new); public static void main(string[] args) { Integer[] listofdigits = {1,2,3,4,5,5,4,3,1,2}; try { Integer minfromdigits = Main.getMinFromDigits(listOfDigits); System.out.printf("MIN = %d \n", minfromdigits); } catch(emptydataexception e) { } } } System.out.println(ERROR_EMPTY_DATA); Stan projektu po kompilacji i uruchomieniu: 7
➁ Połączenie projektu z zdalnym repozytorium Na platformie Bitbucket proszę utworzyć nowe repozytorium nisp lab 03: Następnie kopiujemy link zdalnego repozytorium: 8
Musimy włączyć integracją z systemem kontroli wersji. W menu wybieramy VCS Enable Version Control Integration... Wybieramy system kontroli wersji, który Nas interesuje i klikamy OK. Możliwość podłączenia się z zdalnym repozytorium dostępna jest z menu: VCS Git Remotes... 9
Należy dodać wcześniej skopiowany link repozytorium w taki sposób jak zostało to przedstawione na powyższym screenie. ➂ Dodawanie plików do INDEXu Do komendy mamy dostęp klikając prawym przyciskiem myszki na głównym katalogu projektu, a następnie Git + Add. 10
➃ Commit Do komendy mamy dostęp klikając prawym przyciskiem myszki na głównym katalogu projektu, a następnie Git Commit directory... (CTRL + K) Następnie proszę nie zapomnieć o dodaniu stosownego komentarza. 11
➄ Push (wysyłanie zmian do zdalnego repozytorium) Do komendy mamy dostęp klikając prawym przyciskiem myszki na głównym katalogu projektu, a następnie Git Repository Push... (CTRL + SHIFT + K) Następnie klikamy Push i wysyłamy Nasze zmiany na serwer. 12
Upewniamy się czy faktycznie zostały wysłane zmiany na platformę Bitbucket. ➅ Pull (pobieranie zmian) Bardzo proszę o dodanie komentarza nad klasą Main pliku Main.java (branch master) w systemie Bitbucket (w menu Source proszę kliknąć na liście plików w Main.java a następnie Edit). Po dokonaniu zmian klikamy Commit. Przełączamy się środowisko programistyczne IntelliJ IDEA. Do komendy mamy dostęp klikając prawym przyciskiem myszki na głównym katalogu projektu, a następnie Git Repository Pull... Należy potwierdzić swoją decyzję klikając Pull 13
➆ Tworzenie branchy Na status barze jest informacja na jakim aktualnie branchu się znajdujemy. Klikając w aktualną nazwę brancha będziemy mieli dostęp do menu, które udostępnia zestaw operacji na branchach. Utworzymy z brancha master branch develop. Klikamy w nazwę naszego brancha na status barze i wybieramy + New Branch. Nadajemy nowemu branchowi nazwę develop. Klikamy OK. W następnym kroku proszę wysłać zmiany do zdalnego repozytorium - Push. Upewnijmy się czy powstał nowy branch na platformie Bitbucket. 14
➇ Rozgałęzianie i scalanie Na potrzeby tego ćwiczenia należy utworzyć nowego brancha feature-max-function z brancha develop. W klasie Main należy dopisać kolejną statyczną metodę wyszukującą maksimum z tablicy liczb całkowitych. Po skończonej implementacji należy wykonać Commit i Push. Aby wykonać scalenie brancha feature-max-function z branchem develop należy wykonać odpowiednie kroki: Proszę przełączyć się na branch develop: Kolejnym krokiem jest scalanie branchy: 15
Po udanym scaleniu wykonujemy odpowiednio komendy Commit i Push. Branch develop powinien być już aktualny. Proszę sprawdzić efekt swojej pracy na platformie Bitbucket. 16