Rozdział 1 z 5

Kurs Git: instalacja, konfiguracja i uwierzytelnianie SSH

zweryfikowano 7 września 2026 · 8 min

Szybka odpowiedź

Zainstaluj Gita menedżerem pakietów swojego systemu, a potem ustaw trzy rzeczy: tożsamość przez git config --global user.name i user.email, nazwę domyślnej gałęzi przez init.defaultBranch main oraz uwierzytelnianie kluczem SSH. Hasło do konta GitHub nie działa dla Gita od 13 sierpnia 2021.

Ten rozdział instaluje Gita, ustawia trzy parametry, bez których pierwszy commit zostanie odrzucony, i konfiguruje uwierzytelnianie w GitHubie albo GitLabie. Licz na jakieś piętnaście minut, razem z częścią o kluczu SSH.

Jeśli trafiasz tu prosto z wyszukiwarki, różnicę między Gitem a GitHubem oraz plan całego kursu opisuje wprowadzenie do kursu.

Instalacja Gita

Na macOS-ie i Linuksie Git jest prawdopodobnie już na miejscu. Sprawdź to, zanim cokolwiek zainstalujesz:

bash
git --version

Jeśli komenda odpowiada numerem wersji, Git jest zainstalowany i możesz przejść do konfiguracji. Jeśli odpowiada, że nie znajduje takiej komendy, wykonaj sekcję dla swojego systemu.

Windows

Najprościej użyć menedżera pakietów wbudowanego w Windowsa:

bash
winget install --id Git.Git -e --source winget

Możesz też pobrać instalator ze strony git-scm.com/install/windows i zostawić domyślne opcje. Najnowsza wersja opublikowana w chwili tej weryfikacji to Git for Windows 2.55.0(5) z 20 sierpnia 2026. Instalacja dokłada Git Bash, terminal odtwarzający środowisko uniksowe. Używaj go zamiast wiersza poleceń: wszystkie komendy z tego kursu działają w nim bez żadnych zmian.

macOS

Git jest częścią narzędzi wiersza poleceń Xcode. Pierwsze wywołanie git proponuje ich instalację, ale możesz ją też wymusić:

bash
xcode-select --install

Ta wersja jest pewna, ale zwykle o kilka miesięcy w tyle za oficjalną. Żeby trzymać się na bieżąco, zainstaluj Gita przez Homebrew:

bash
brew install git

Linux

Użyj menedżera pakietów swojej dystrybucji.

bash
# Debian, Ubuntu i pochodne
sudo apt update && sudo apt install git

# Fedora, RHEL, Rocky
sudo dnf install git

# Arch
sudo pacman -S git

# Alpine
sudo apk add git

Zainstalowana wersja zależy od dystrybucji, a różnica bywa spora. Wersje zmierzone 7 września 2026 r. podano w sekcji „Zmierzony wynik” na końcu tego rozdziału. Ubuntu 24.04 dostarcza Git 2.43 z końca 2023 r.: to aż nadto na wszystko, co robi ten samouczek, bo najnowsze używane przez nas polecenia pochodzą z Git 2.23.

Przedstaw się: nazwa i adres e-mail

Git wpisuje autora każdego commita do historii. Dopóki nie powiesz mu, kim jesteś, odmawia zapisania czegokolwiek:

Sortie réelle · git commit sans identité configurée
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@23d1d26b6831.(none)')

Ustaw więc obie wartości, zanim zrobisz cokolwiek innego:

bash
git config --global user.name "Damien Flandrin"
git config --global user.email "dam@example.com"

Opcja --global zapisuje do twojego pliku osobistego i obowiązuje we wszystkich projektach. Bez niej ustawienie dotyczy tylko bieżącego repozytorium, co przydaje się, gdy w części projektów używasz adresu służbowego, a w reszcie prywatnego.

Podaj adres, który godzisz się upublicznić: pojawia się w historii, a historia trafia do każdego, kto sklonuje projekt. GitHub udostępnia adres zastępczy w domenie @users.noreply.github.com, jeśli wolisz nie pokazywać własnego.

Nazwa domyślnej gałęzi

To punkt, wokół którego krąży najwięcej fałszywych informacji. Często można przeczytać, że Git tworzy dziś gałąź main. To nieprawda. Oto co robi git init w Gicie 2.55, wersji aktualnej we wrześniu 2026:

Sortie réelle · git init sans configuration préalable
hint: Using 'master' as the name for the initial branch. This default branch name
hint: will change to "main" in Git 3.0. To configure the initial branch name
hint: to use in all of your new repositories, which will suppress this warning,
hint: call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /root/a1/.git/

Gałąź nazywa się więc nadal master, a Git sam zapowiada, że domyślna nazwa zmieni się na main dopiero w wersji 3.0. Zmieniły się natomiast serwisy hostingowe: GitHub zakłada nowe repozytoria z gałęzią main od października 2020, GitLab od wersji 14. Stąd stała rozbieżność między tym, co robi twoja maszyna, a tym, co robi serwer.

Rozstrzygnij to raz na zawsze:

bash
git config --global init.defaultBranch main

Komunikat znika, a kolejne repozytoria startują na main. Uwaga: ustawienie działa tylko na nowe repozytoria. W repozytorium, które już istnieje i którego gałąź nazywa się master:

bash
git branch -m master main

Sprawdzenie konfiguracji

Trzy komendy wystarczą, żeby wiedzieć, na czym stoisz:

bash
git config --global --list                # co jest ustawione
git config --global --list --show-origin  # i w którym pliku
git config --global --edit                # otwarcie pliku

Konfiguracja osobista to zwykły plik tekstowy, ~/.gitconfig, który możesz czytać i zmieniać bezpośrednio:

~/.gitconfig
[user]
	name = Damien Flandrin
	email = dam@example.com
[init]
	defaultBranch = main

Dwa dodatkowe ustawienia warto wprowadzić od razu. Edytor, którego Git używa do wiadomości commitów, bez tego prędzej czy później wylądujesz w Vimie, nie wiedząc, jak z niego wyjść:

bash
git config --global core.editor "code --wait"   # Visual Studio Code
git config --global core.editor "nano"          # albo dowolny edytor terminalowy

Oraz zachowanie git pull, które rozwiniemy w rozdziale o gałęziach:

bash
git config --global pull.rebase true

Uwierzytelnianie w GitHubie i GitLabie

Jedna sprawa wymaga tu jasnego postawienia, bo kosztuje początkujących mnóstwo czasu. Twoje hasło do GitHuba nie służy Gitowi już do niczego. GitHub przestał akceptować hasła kont przy operacjach Gita 13 sierpnia 2021. Oto co odpowiada serwer, jeśli mimo wszystko spróbujesz:

Sortie réelle · clone HTTPS avec un mot de passe
Cloning into 'depot-prive'...
remote: Invalid username or token. Password authentication is not supported for Git operations.
fatal: Authentication failed for 'https://github.com/damienflandrin/depot-prive.git/'

Zostają dwie poprawne metody: klucz SSH albo osobisty token dostępu. Klucz SSH zajmuje pięć minut i potem nigdy więcej się o nic nie upomina. Jego polecamy.

Tworzenie klucza SSH

bash
ssh-keygen -t ed25519 -C "dam@example.com"

Zatwierdź proponowaną ścieżkę. Hasło do klucza jest opcjonalne, ale zalecane: chroni klucz, gdyby twoja maszyna wpadła w niepowołane ręce.

Sortie réelle · ssh-keygen
Generating public/private ed25519 key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_ed25519
Your public key has been saved in /root/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:s5YjDRbNgv3/o8SvEFh4A6hzpWddSsquX0l0k4aUptw dam@example.com

Powstały dwa pliki. id_ed25519 to klucz prywatny: nigdy nie opuszcza twojej maszyny, nigdzie się go nie kopiuje i nie wkleja do żadnego formularza. id_ed25519.pub to klucz publiczny, ten, który powierzasz serwerowi.

Wyświetl klucz publiczny i skopiuj całą linię:

bash
cat ~/.ssh/id_ed25519.pub
Sortie réelle · contenu de la clé publique
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINjiBkboRdOPXk2UWn3UUMSv2qr8G9cGvzKsTd+ZyYCa dam@example.com

Następnie wklej ją w Settings > SSH and GPG keys > New SSH key na GitHubie albo w Preferences > SSH Keys na GitLabie.

Sprawdzenie, czy klucz działa

bash
ssh -T git@github.com

Przy pierwszym połączeniu SSH prosi o potwierdzenie odcisku serwera. Odcisk GitHuba dla kluczy Ed25519 to SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU, porównaj go z tym opublikowanym przez GitHuba, zanim odpowiesz yes. Jeśli wszystko się zgadza, GitHub odsyła powitanie z twoją nazwą użytkownika i zaznacza, że dostęp do shella nie jest dozwolony, to normalne. Jeśli zamiast tego dostajesz:

Sortie réelle · clé non enregistrée chez GitHub
git@github.com: Permission denied (publickey).

to znaczy, że klucz publiczny nie został zapisany na koncie albo że przez pomyłkę wkleiłeś klucz prywatny.

Alternatywa: osobisty token dostępu

Jeśli SSH jest zablokowane w twojej sieci albo pracujesz w skrypcie ciągłej integracji, użyj osobistego tokena dostępu. Na GitHubie utworzysz go w Settings > Developer settings > Personal access tokens, wybieraj tokeny o wąskim zakresie (fine-grained), które ograniczają dostęp do jednego repozytorium i same wygasają. Na GitLabie odpowiednik znajdziesz w Preferences > Access Tokens.

Tokena używasz zamiast hasła, gdy Git o nie pyta. Żeby nie wpisywać go przy każdej komendzie, włącz menedżera poświadczeń:

bash
git config --global credential.helper store    # proste, ale token zapisany jawnym tekstem
git config --global credential.helper osxkeychain  # macOS, przechowywanie w pęku kluczy

Na Windowsie Git Credential Manager instaluje się i włącza domyślnie razem z Git for Windows.

Traktuj token dokładnie jak hasło: nie trafia do repozytorium, do wersjonowanego pliku konfiguracyjnego ani do adresu URL, który komuś wysyłasz.

Twoje stanowisko jest gotowe. Następny rozdział zakłada repozytorium na GitHubie albo GitLabie i łączy je z katalogiem na twojej maszynie.

Zmierzony wynik

Wersja Gita instalowana przez menedżera pakietów na oficjalnym obrazie każdej dystrybucji, zmierzona 7 września 2026 r.:

System Wersja Gita
Debian 12 « bookworm » 2.39.5
Debian 13 « trixie » 2.47.3
Ubuntu 22.04 2.34.1
Ubuntu 24.04 2.43.0
Fedora 44 2.55.0
Alpine (edge) 2.55.0
Git for Windows 2.55.0(5)

Wszystkie wystarczą: najnowsze polecenie użyte w tym samouczku, git switch, pochodzi z Git 2.23.

Częste błędy

Author identity unknown Git odrzuca każdy commit, dopóki nie ustawisz user.name i user.email. Uruchom obie komendy git config --global przed pierwszym commitem.
Password authentication is not supported GitHub nie przyjmuje hasła konta przy operacjach Gita od 13 sierpnia 2021. Użyj klucza SSH albo osobistego tokena dostępu.
Permission denied (publickey) Klucz publiczny nie został zapisany na koncie albo wkleiłeś klucz prywatny. Do interfejsu wkleja się wyłącznie plik z rozszerzeniem .pub.
Ustawienie init.defaultBranch nie działa Obejmuje tylko repozytoria utworzone później. W istniejącym repozytorium zmień nazwę gałęzi przez git branch -m master main.
Newsletter

Nowe testy, poradniki i projekty — e-mailem.

Powtarzalne testy, wersjonowany kod, datowane wyniki. Nigdy spamu.