🢂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
- Przejdź do folderu lokalnego:
cd /home/swami/www/nazwa-projektu
- Zainicjuj Git (jeśli jeszcze nie zainicjowany): Jeśli jeszcze nie zainicjowałeś Git-a w tym folderze, wykonaj:
git init
- Sprawdź, czy zdalne repozytorium zostało dodane:
git remote -v
- 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
- 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:
- 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
przedgit push
, aby zaktualizować lokalne gałęzie. - Użyj
git push -f
(z rozwagą!), aby wymusić przesłanie zmian.
- Użyj
- 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.
- Użyj
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.
- Użyj
-
Cofnięcie ostatniego commita, zachowując zmiany w plikach:
git reset --soft HEAD~1
-
Wycofanie zmian w konkretnym pliku do stanu z ostatniego commita:
git checkout -- <nazwa_pliku>
-
Zmiana wiadomości w ostatnim commitcie:
git commit --amend -m "Nowa wiadomość"
-
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
nasquash
przy commitach, które chcesz scalić.
- Przechodzisz do trybu interaktywnej rebase dla określonej liczby commitów:
-
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ępniegit commit -m "Rozwiązano konflikty"
.
-
Usunięcie pliku z repozytorium, ale zachowanie go lokalnie:
git rm --cached <nazwa_pliku>
-
Dodanie zmian z konkretnego pliku do ostatniego commita (bez tworzenia nowego commita):
git add <nazwa_pliku>
git commit --amend --no-edit
-
Przywrócenie usuniętego commita:
- Znajdź identyfikator commita przy pomocy
git reflog
. - Przywróć commit:
git cherry-pick <identyfikator_commita>
- Znajdź identyfikator commita przy pomocy
-
Zmiana gałęzi bez utraty lokalnych zmian:
git stash
git checkout <nazwa_gałęzi>
git stash pop
-
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>
- Dodaj repozytorium główne jako remote:
Dodatkowe zasoby:
- Atlassian Git Tutorial: https://www.atlassian.com/pl/git/tutorials/atlassian-git-cheatsheet
- Przydatna ściągawka poleceń Gita dla wszystkich koderów: https://bulldogjob.pl/readme/przydatna-sciagawka-polecen-gita-dla-wszystkich-koderow
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.