Kurs Git: instalacja, konfiguracja i uwierzytelnianie SSH
zweryfikowano 7 września 2026 · 8 min
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:
git --versionJeś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:
winget install --id Git.Git -e --source wingetMoż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ć:
xcode-select --installTa wersja jest pewna, ale zwykle o kilka miesięcy w tyle za oficjalną. Żeby trzymać się na bieżąco, zainstaluj Gita przez Homebrew:
brew install gitLinux
Użyj menedżera pakietów swojej dystrybucji.
# 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 gitZainstalowana 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:
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:
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:
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:
git config --global init.defaultBranch mainKomunikat 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:
git branch -m master mainSprawdzenie konfiguracji
Trzy komendy wystarczą, żeby wiedzieć, na czym stoisz:
git config --global --list # co jest ustawione
git config --global --list --show-origin # i w którym pliku
git config --global --edit # otwarcie plikuKonfiguracja osobista to zwykły plik tekstowy, ~/.gitconfig, który możesz czytać i zmieniać bezpośrednio:
[user]
name = Damien Flandrin
email = dam@example.com
[init]
defaultBranch = mainDwa 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ść:
git config --global core.editor "code --wait" # Visual Studio Code
git config --global core.editor "nano" # albo dowolny edytor terminalowyOraz zachowanie git pull, które rozwiniemy w rozdziale o gałęziach:
git config --global pull.rebase trueUwierzytelnianie 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:
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
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.
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.comPowstał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ę:
cat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINjiBkboRdOPXk2UWn3UUMSv2qr8G9cGvzKsTd+ZyYCa dam@example.comNastę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
ssh -T git@github.comPrzy 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:
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ń:
git config --global credential.helper store # proste, ale token zapisany jawnym tekstem
git config --global credential.helper osxkeychain # macOS, przechowywanie w pęku kluczyNa 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
user.name i user.email. Uruchom obie komendy git config --global przed pierwszym commitem..pub.git branch -m master main.