🢂GIT ‑ Cheatsheet (ściąga) Tutorial

Ściąga (Tutorial) z GITa która ma na celu szybkie przekazanie najważniejszych, kluczowych punktów, które pomagają zrozumieć daną kwestię bez zagłębiania się w szczegółowe i rozbudowane wyjaśnienia.

Co to jest Git?

Git to rozproszony system kontroli wersji, który służy do śledzenia zmian w plikach i kodzie źródłowym. Pozwala on na:

  • Współpracę: Wspólną pracę nad projektami z innymi programistami, nawet jeśli nie są oni podłączeni do tej samej sieci.
  • Kontrolę wersji: Śledzenie zmian w kodzie na przestrzeni czasu, co umożliwia cofnięcie błędów lub przywrócenie poprzednich wersji.
  • Usprawnienie przepływu pracy: Ułatwia zarządzanie zadaniami i śledzenie postępów w projekcie.

Główne cechy Gita:

  • Rozproszony: Każdy użytkownik posiada kopię całego repozytorium na swoim komputerze.
  • Gałęzie: Możliwość tworzenia i przełączania się między różnymi gałęziami kodu.
  • Commit: Możliwość zapisywania zmian w repozytorium w postaci commitów.
  • Merge: Możliwość łączenia zmian z różnych gałęzi.

Korzyści z używania Gita:

  • Usprawnia współpracę: Ułatwia pracę nad projektami z innymi programistami.
  • Pozwala na łatwe cofanie błędów: Możliwość przywrócenia poprzedniej wersji kodu w razie błędu.
  • Umożliwia śledzenie zmian: Pozwala na śledzenie zmian w kodzie na przestrzeni czasu.
  • Jest wydajny: Git jest bardzo szybkim i wydajnym systemem kontroli wersji.

Jak zacząć z Gitem?

  • Zainstaluj Git na swoim komputerze.
  • Utwórz nowe repozytorium.
  • Dodaj pliki do repozytorium.
  • Zrób commit zmian.
  • Współpracuj z innymi programistami.

Inicjowanie Gita

  1. Przejdź do folderu lokalnego:
cd /home/swami/www/nazwa-projektu
  1. Zainicjuj Git (jeśli jeszcze nie zainicjowany): Jeśli jeszcze nie zainicjowałeś Git-a w tym folderze, wykonaj:
git init
  1. Sprawdź, czy zdalne repozytorium zostało dodane:
git remote -v
  1. Dodaj zdalne repozytorium: Teraz musisz dodać adres zdalnego repozytorium jako "remote" do swojego lokalnego repozytorium.
git remote add origin user@bleble.pl:domains/bleble/reporepo.git
  1. Sprawdź, czy zdalne repozytorium zostało dodane: Możesz to zrobić za pomocą:
git remote -v

Pobieranie zmian ze zdalnego repozytorium

git pull origin nazwa_gałezi

Wysyłanie zmian do zdalnego repozytorium

Dodajesz pliki (w tym wypadku wszystkie)

git add .

Zapisujesz dokonane zmiany w repo

git commit -m "Opis zmian"

Wysyłasz je do repo (puszujesz)

git push origin nazwa_gałęzi

Można to zrobić jednym poleceniem

git add . &&  git commit -m "zmiany" &&  git push

Jeśli zachodzi potrzeba zmiany repo

Zmień na następujące:

git remote set-url origin ssh://user@adres.pl:domains/domena/repo.git

lub usuń poprzednie

git remote remove origin

i dodaj ponownie

git remote add origin ssh://user@adres.pl:domains/domena/repo.git

Ściągawka Gita dla programisty: Rozwiązywanie typowych problemów

1. Błędy podczas git pull:

  • Problem: Konflikt scalania (merge conflict)
  • Rozwiązanie:
    • Ręcznie rozwiąż konflikty w plikach.
    • Użyj git mergetool do automatycznego scalania (jeśli dostępne).
    • Wycofaj zmiany (git reset) i spróbuj ponownie.
  • Problem: Błąd "remote: Not authorized"
  • Rozwiązanie:
    • Sprawdź poprawność adresu URL repozytorium.
    • Upewnij się, że posiadasz odpowiednie uprawnienia dostępu.
    • Wygeneruj i dodaj token SSH (jeśli wymagane).

2. Błędy podczas git push:

  • Problem: Błąd "rejected: master -> master (non-fast-forward)"
  • Rozwiązanie:
    • Użyj git pull przed git push, aby zaktualizować lokalne gałęzie.
    • Użyj git push -f (z rozwagą!), aby wymusić przesłanie zmian.
  • Problem: Błąd "remote: You are not allowed to push to this repository"
  • Rozwiązanie:
    • Sprawdź poprawność adresu URL repozytorium.
    • Upewnij się, że posiadasz odpowiednie uprawnienia dostępu.

3. Problemy z repozytorium:

  • Problem: Brak dostępu do pliku (np. "No such file or directory")
  • Rozwiązanie:
    • Sprawdź poprawność nazwy pliku.
    • Upewnij się, że plik znajduje się w śledzonym folderze (git add).
    • Użyj git status, aby sprawdzić stan repozytorium.
  • Problem: Nie mogę usunąć pliku z repozytorium
  • Rozwiązanie:
    • Użyj git rm do usunięcia pliku z repozytorium.
    • Użyj git clean do usunięcia pliku z lokalnego katalogu.

4. Inne typowe problemy:

  • Problem: Zapomniałem hasła do Git
  • Rozwiązanie:
    • Zresetuj hasło na stronie internetowej Git (np. GitHub).
  • Problem: Chcę cofnąć ostatnią zmianę
  • Rozwiązanie:
    • Użyj git reset do cofnięcia ostatniej zmiany.
    • Użyj git checkout do przejścia do poprzedniej wersji.
  1. Cofnięcie ostatniego commita, zachowując zmiany w plikach:

    git reset --soft HEAD~1

  2. Wycofanie zmian w konkretnym pliku do stanu z ostatniego commita:

    git checkout -- <nazwa_pliku>

  3. Zmiana wiadomości w ostatnim commitcie:

    git commit --amend -m "Nowa wiadomość"

  4. Scalanie kilku commitów w jeden:

    • Przechodzisz do trybu interaktywnej rebase dla określonej liczby commitów: git rebase -i HEAD~<liczba_commitów>
    • W otwartym edytorze zmieniasz słowo pick na squash przy commitach, które chcesz scalić.
  5. Rozwiązanie konfliktów po merge:

    • Edytujesz pliki, które zawierają konflikty, decydując, które zmiany mają zostać zachowane.
    • Po rozwiązaniu konfliktów: git add . a następnie git commit -m "Rozwiązano konflikty".
  6. Usunięcie pliku z repozytorium, ale zachowanie go lokalnie:

    git rm --cached <nazwa_pliku>

  7. Dodanie zmian z konkretnego pliku do ostatniego commita (bez tworzenia nowego commita):

    git add <nazwa_pliku>

    git commit --amend --no-edit

  8. Przywrócenie usuniętego commita:

    • Znajdź identyfikator commita przy pomocy git reflog.
    • Przywróć commit: git cherry-pick <identyfikator_commita>
  9. Zmiana gałęzi bez utraty lokalnych zmian:

    git stash

    git checkout <nazwa_gałęzi>

    git stash pop

  10. Aktualizacja forka do stanu repozytorium głównego:

    • Dodaj repozytorium główne jako remote: git remote add upstream <URL_repozytorium_głównego>
    • Pobierz zmiany: git fetch upstream
    • Zaktualizuj swoją gałąź: git merge upstream/<nazwa_gałęzi>

Dodatkowe zasoby:

Uwaga: Pamiętaj, że ta ściągawka ma na celu jedynie przedstawienie podstawowych rozwiązań typowych problemów. W przypadku bardziej złożonych problemów, zaleca się zapoznanie się z dokumentacją Git lub skorzystanie z pomocy bardziej doświadczonego użytkownika.

Dodatkowe porady:

  • Używaj aliasów dla często używanych poleceń Git.
  • Zainstaluj graficzny interfejs użytkownika (GUI) dla Gita, aby ułatwić sobie pracę.
  • Regularnie twórz kopie zapasowe swojego repozytorium.
  • Ucz się Git na bieżąco i poznawaj nowe funkcje.