Git – podstawowe działania w terminalu i GUI

Git – podstawowe działania w terminalu i GUI24.05.2019 10:51
Git – podstawowe działania w terminalu i GUI

Git jest niezbędnym narzędziem każdego dewelopera. Praca z kodem w zespole wymaga tego, aby współdzielić kod i zarządzać nim. W tym wpisie zostanie pokazane jak założyć własne repozytorium na popularnym GitHubie oraz jak zarządzać nim z poziomu terminala, oraz używając narzędzi z GUI (w tym przypadku będzie to SourceTree).

GitHub – zakładamy repozytorium

Pierwszym krokiem jest oczywiście założenie konta na GitHubie. Wersja darmowa ma możliwości stworzenia zarówno publicznego, jak i prywatnego repozytorium, z podstawowym zarządzaniem kontem dla kilku osób. Mając już profil, przejdźmy do stworzenia nowego repozytorium dla naszego projektu:

Na tym etapie decydujemy się na wybór nazwy repozytorium. Warto, aby była ona prosta i nie zawierała specjalnych znaków, które mogą utrudnić pracę z projektem.

Decydujemy również czy nasze repozytorium będzie publiczne (dostępne dla wszystkich) lub prywatne (ograniczone tylko do zamkniętej grupy użytkowników). Prywatne repozytorium na darmowym koncie ma pewne ograniczenia (chociażby ilość współużytkowników), ale pozwala na przechowywanie kodu, z dala od innych.

Warto także już teraz dodać plik .gitignore, który jest zbiorem reguł opisujących, jakie pliki nie będą przetwarzane przez system kontroli wersji. W większości przypadków ignoruje się pliki binarne lub inne będące wynikiem kompilacji. GitHub posiada predefiniowane pliki .gitignore, dostosowane do platformy na jakiej pracujemy. W tym przypadku wybrałem VisualStudio, co automatycznie spowoduje ignorowanie plików związanych z kompilacją chociażby w .NET, jak i plików tymczasowych związanych z projektem w IDE.

Na tym etapie wybrać możemy również typ licencji, na jakiej będzie udostępniony projekt. Spowoduje to automatyczne dodanie pliku z licencją do repozytorium. Szczególnie jest to ważne w repozytoriach publicznych.

Tak stworzone repozytorium będzie posiadać głównych branch (master) z pierwszym commitem. Zawierać będzie ono pliki licencji, .gitignore, a także plik Readme, z opisem projektu.

Na górnej belce widzimy kilka zakładek. W tym momencie interesuje nas pierwsza, z kodem i branchami. Pozostałe służą do zarządzania kodem w większej grupie. Możemy tutaj zgłaszać uwagi czy błędy (Issues) czy rozwiązywać Pull requesty lub oceniać kod i mergować go z różnych branchy.

Git – praca z terminalem

Pracę z Gitem zaczniemy od zapoznania się z podstawowymi komendami Gita. Po instalacji Gita uruchamiamy terminal i przechodzimy do folderu, w którym chcemy przetrzymywać pliki z repozytorium.

Pierwszą komendą będzie sklonowanie repozytorium, które zostało założone w GitHubie. Adres do repozytorium znajdziemy bezpośrednio na stronie:

W konsoli wpisujemy zatem komendę, które sklonuje nam podstawowego brancha (master):[code=bash]git clone https://github.com/djfoxer/testRepo.git[/code]W tym momencie, Git zaciągnie dla nas kod z repozytorium. W tym momencie możemy zostać poproszeni o dane do autoryzacji. Login i hasło raz podane, zostaną zapamiętane na kolejne już sesje.

W większości przypadków nie pracujemy na branchu master, zatem stwórzmy brancha develop, który będzie wywodził się z mastera:[code=bash]git branch develop[/code]a następnie przejdźmy na świeżo utworzonego brancha:[code=bash]git checkout develop[/code]Powyższe komendy możemy skrócić do jednej:[code=bash]git checkout -b develop[/code]Teraz wrzućmy naszego nowego brancha na GitHuba, aby inni również mogli z niego korzystać, robimy to poleceniem:[code=bash]git push --set-upstream origin develop[/code]Przyszedł czas na pierwszego commita. Dodajmy lub zmieńmy pliki w repozytorium, aby móc wrzucić kod do naszego brancha develop. W każdej chili możemy sprawdzić status gita, czyli co zmieniliśmy, dodaliśmy oraz co się dzieje na repozytorium poleceniem:[code=bash]git status[/code]Aby dodać zmiany użyjemy polecenia push. W celu dodania zmian w całym repozytorium wykonujemy polecenie:[code=bash]git add –A[/code]Często używane jest również polecenie[code=bash]git add .[/code]które dodaje również zmiany do stagingu, ale tylko w danym folderze i głębiej. Polecenie z przełącznikiem –A jest bardziej uniwersalnie i nie zapomnimy o żadnych zmianach, jakie nanieśliśmy na repozytorium.

Teraz przyszedł czas na commit, w tym celu wykonujemy polecenie:[code=bash]git commit –m ”opis commitu 1”[/code]a także wrzucamy zmiany z lokalnego repozytorium na serwer:[code=bash]git push[/code]Operowanie repozytorium z terminalu nie jest trudne, ale nie mamy prostego i szybkiego podglądu na stan repozytorium i stagingu (tego, co będziemy wrzucać w commicie). Szczególnie jest to uciążliwe przy dużych ilościach zmian w repozytorium lokalnym i gdy nie chcemy w commicie dodawać wszystkich modyfikacji, jakich dokonaliśmy. Wówczas konsola staje się delikatnie uciążliwa.

SourceTree – wygodne GUI do Gita

W sieci jest bardzo wiele darmowych klientów Gita, które oferują graficzny interfejs użytkownika przy obsłudze kontroli wersji. Jednym z nich jest SourceTree, darmowa aplikacja na Windows i mac OS. Instalacja jest niezmiernie prosta, a sama aplikacja cechuje się dużą intuicyjnością.

Pracę rozpoczynamy od sklonowania repozytoriom:

Podobnie jak w przypadku terminalu, podajemy adres zewnętrzny, a także miejsce docelowe, gdzie będziemy trzymali repozytoriom lokalnie. W razie potrzeby podajemy dane do autoryzacji.

Tworzenie commitów, nowych branchy i wiele innych akcji, jakie spotykamy w zarządzaniu repozytorium, wykonujemy bardzo intuicyjnie. Główne okno zawiera po lewej stronie listę branchy, a także commity z repozytorium. Poniżej okno przedstawia status zmian z SourceTree:

Widzimy tutaj zmiany dodane do stagingu, a także nowe pliki, które jeszcze nie zostały dorzucone w tworzonym commicie. Szybko przejrzymy konkretne różnice. W konsolowej wersji gita podobnie niewielka zmiana wyglądać będzie następująco:[code=bash]On branch developYour branch is up to date with 'origin/develop'.Changes to be committed: (use "git reset HEAD ..." to unstage) modified: entry.batUntracked files: (use "git add ..." to include in what will be committed) a.txt nowe.txt[/code]Przy większej ilość zmian opanowanie wszystkiego nie jest już wcale wygodne z poziomu terminalu. Okno SourceTree jest skonstruowane bardzo przejrzyście. Stworzenie nowego commita sprowadza się do dodania plików do stagingu, uzupełnienia opisu i wciśnięcia przycisku Commit. Bez sprawdzania co chwila zmian poprzez git status, z poziomu GUI zrobimy to w prosty i przejrzysty sposób.

Tworzenie nowych branchy również ogranicza się do jednego przycisku:

Porównajmy teraz, jak wyglądają zmiany w repozytorium na stronie GitHub:

w narzędziu SourceTree:

a także w terminalu:[code=bash]commit 9b34821f3092d99ed67903e02883fc18393b7185Author: djfoxer Date: Sun Apr 14 12:20:45 2019 +0200 Commit 3commit 68717765749382b16617781e03d8ed17022a625dAuthor: djfoxer Date: Sun Apr 14 12:19:36 2019 +0200 commit 2commit 396185e53628ae6d14b5b1f5b0378eec2218f255Author: djfoxer Date: Sun Apr 14 12:13:52 2019 +0200 commit 1commit d3d2f95263f540ffd2aa1131e208147d2e072703Author: djfoxer Date: Sun Apr 14 11:42:05 2019 +0200 Update README.mdcommit 41e081e0ef0bdae5188551f77310bde139408875Author: djfoxer Date: Sun Apr 14 10:59:31 2019 +0200 Initial commit[/code]

Git – narzędzia

Git ma być pomocą dla dewelopera i narzędziem do zarządzania kodem, działającym w tle. Nie powinien być on uciążliwością, a pomagać na co dzień i oferować szybki dostęp do opcji. Git w wybranym narzędziu graficznym będzie na pewno świetnym wyborem. Trywialne przeglądanie rzeczy do commitowania i zarządzanie zmianami do główne zalety aplikacji z prostym GUI. Również merge czy nawet cherry-picki (przenoszenie commitów pomiędzy branchami) jest znacznie wygodniejsze z poziomu narzędzia graficznego.

Oczywiście warto znać obsługę Gita przez terminal, ale zapewne przyda się to w wyjątkowych i bardzo rzadkich sytuacjach. Wówczas niezbędne będzie sięgnięcie do dokumentacji (a finalnie zapewne do podpowiedzi na stackoverflow) w celu poprawnego wykonania bardziej zaawansowanych poleceń.

Graficzne narzędzie do Gita pozwoli na swobodną i niestresującą pracę z kontrolą wersji. Jest to niezmiennie ważne, gdy dokonujemy wielu zmian w środowisku, które może generować dodatkowe pliki, których się nie będziemy spodziewać. Szybkie spojrzenie na zmiany w GUI jest znacznie wygodniejsze i szybsze, niż ma to miejsce w wersji konsolowej. Warto znać obie metody operowania na Gicie, ale wybrać tą, która bardziej odpowiada naszym aktualnym oczekiwaniom.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.