Last modified: June 11, 2024

This article is written in: 🇵🇱

Git
Instalacja

Aby zainstalować Git, należy pobrać instalator z oficjalnej strony https://git-scm.com/downloads i przejść przez proces instalacji. W systemie Linux dla wersji opartych na Debianie, można użyć polecenia:

sudo apt install git

GitHub

Pytanie: Czy muszę korzystać z GitHuba, aby korzystać z Gita?

Odpowiedź: Nie, istnieją inne rozwiązania do hostowania repozytoriów Git, takie jak np. GitLab czy Bitbucket. Można również hostować repozytoria na własnym serwerze lub używać innych narzędzi do zarządzania kontrolą wersji, które nie są związane z GitHubem.

Jak to działa?

Istnieją trzy typy obiektów w Git:

Przykłady komend, które pozwalają na manipulowanie obiektami i repozytorium to:

Tworzenie repozytorium

Aby utworzyć nowe repozytorium, zaleca się skorzystanie z serwisu GitHub lub innej platformy do hostowania repozytoriów Git.

GitHub

git clone link_do_repozytorium

git init

Proces pracy z Gitem

Git umożliwia wprowadzanie zmian w plikach w lokalnej wersji repozytorium, dodawanie tych zmienionych plików do składu plików oczekujących na zatwierdzenie (zwanego "staging area") oraz zatwierdzanie tych zmian za pomocą commitów. Proces pracy z Gitem można przedstawić w następujący sposób:

  1. Wprowadź zmiany w plikach w swojej lokalnej kopii repozytorium.
  2. Dodaj zmienione pliki do składu plików oczekujących na zatwierdzenie za pomocą komendy git add.
  3. Zatwierdź pliki i opisz wprowadzone zmiany za pomocą commita za pomocą komendy git commit -m "komentarz".
  4. Możesz teraz wyświetlić historię commitów za pomocą komendy git log.

Przykład:

cat "Hello" > example.txt
git add example.txt
git commit -m "przykladowa informacja"
git log

Zatwierdzanie zmian

commit

Rozgałęzianie i łączenie gałęzi

Git umożliwia tworzenie nowych gałęzi, które są oddzielnymi ścieżkami rozwoju projektu. Domyślna gałąź to najczęściej gałąź master lub main. Gałęzie służą do odizolowania różnych funkcjonalności lub zmian od głównej linii kodu, co pozwala na pracę nad nimi bez ryzyka ich wpływu na inne elementy projektu.

Przykład:

git checkout -b nowa_galaz
git branch
git touch temp.md
git commit -am "proba"
git checkout master
git merge nowa_galaz

Konflikty

Konflikty w Git występują, gdy dwa różne gałęzie zostały zmodyfikowane w taki sposób, że te same linie kodu zostały zmienione na obu gałęziach. W takiej sytuacji Git nie jest w stanie samodzielnie połączyć tych zmian, dlatego konieczne jest ręczne rozwiązanie konfliktu.

Jeśli próba połączenia gałęzi zakończy się konfliktem, plik zawierający konflikt zostanie zmodyfikowany i będzie zawierał sekcje wydzielone strzałkami <<<<<<<, =======, >>>>>>>. Te sekcje oznaczają, gdzie zaczyna się i kończy konflikt, oraz które zmiany pochodzą z jakiej gałęzi. Aby rozwiązać konflikt, należy usunąć strzałki i wybrać odpowiednią wersję zmian, która ma zostać zachowana.

<<<<<<< HEAD:temp.md
wiadomosc a zmieniona w b
=======
wiadomosc a zmieniona w c
>>>>>>> nowa_galaz:temp.md

• Znajdź te sekcje, usuń strzałki i wybierz odpowiednią wersję zmian.

Interakcje z serwerem

git pull origin master
cat "Hello" > example.txt
git add example.txt
git commit -m "przykladowa informacja"
git push origin master

Ważne komendy

Komenda Działanie
git clone url pobierz repozytorium z serwera
git add dodaj zmienione pliki do składu plików oczekujących na zatwierdzenie
git commit zatwierdź zmiany
git status wyświetl informację o zmienionych plikach
git diff pokaż zmiany naniesione od ostatniego commita
git push wyślij lokalne zmiany do serwera
git pull pobierz modyfikację z serwera

Ćwiczenia

Ćwiczenie nr 1

  1. Sklonuj lokalnie repozytorium z twojego konta na GitHub za pomocą komendy git clone link_do_repozytorium.
  2. Utwórz nowy plik tekstowy w obrębie tego repozytorium, np. za pomocą polecenia touch nazwa_pliku.txt.
  3. Wyświetl historię zmian dla repozytorium za pomocą komendy git log.
  4. Dodaj plik do składu plików oczekujących na zatwierdzenie za pomocą polecenia git add nazwa_pliku.txt.
  5. Wyświetl ponownie historię zmian dla repozytorium za pomocą komendy git log.

Ćwiczenie nr 2

  1. Dodaj zmiany w tym samym pliku, zarówno w lokalnej wersji repozytorium, jak i na stronie GitHub.
  2. Spróbuj wysłać lokalne zmiany do serwera za pomocą polecenia git push origin nazwa_galezi. Otrzymasz komunikat o konflikcie.
  3. Rozwiąż konflikt poprzez usunięcie strzałek i wybranie odpowiedniej wersji zmian w pliku.
  4. Zatwierdź zmiany za pomocą komendy git commit -am "opis zmian".
  5. Wyślij zmiany do serwera za pomocą polecenia git push origin nazwa_galezi.
  6. Sprawdź, czy GitHub zaakceptował zmiany poprzez sprawdzenie historii zmian na stronie projektu.

Spis Treści

  1. Ćwiczenie nr 1
  2. Ćwiczenie nr 2