Dlaczego mój git push nie działał — 5 pułapek początkującego

6.10.2026 · 3 min czytania

Miało być tak prosto: git add, git commit, git push — i blog ląduje na GitHubie. A skończyło się godziną z terminalem, który uparcie twierdził, że „jakby nie działa”. Spisuję wszystkie pułapki, w które wpadłem — żebyś Ty przeszedł przez to w 5 minut, a nie w godzinę.

Pułapka 1: terminal utknął w pagerze#

Odpaliłem git log i zobaczyłem na dole ekranu (END). Wpisuję kolejne komendy — cisza, nic się nie dzieje.

Okazało się, że git log otworzył wynik w pagerze (programie less). Dopóki w nim siedzisz, wszystko, co wpisujesz, leci do pagera, a nie do terminala.

Żeby git log nie wpadał w pager, możesz raz ustawić:

git config --global core.pager cat

Pułapka 2: „repo jest na GitHubie” ≠ „kod wypchnięty”#

Założyłem repo na GitHubie i byłem pewien, że mam wszystko w chmurze. Tymczasem git status pokazywał wszystkie pliki jako nowe. Zajrzałem w historię:

git log --oneline
# cce8179 (HEAD -> main, origin/main) "Initial commit from Astro"

Nauczka: utworzenie repozytorium na GitHubie to nie to samo co wypchnięcie kodu. Dopóki nie zrobisz commit + push, na górze jest pusto (albo stoi sam szkielet).

Pułapka 3: klucz SSH, którego nikt nie wczytał#

Robię git push i dostaję:

git@github.com: Permission denied (publickey).

Sprawdziłem agenta SSH:

ssh-add -l
# The agent has no identities.

Rozwiązanie — wczytać klucz (i zapisać go w Keychain, żeby przeżył restart):

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Potem test:

ssh -T git@github.com
# Hi TwojaNazwa! You've successfully authenticated...

Pułapka 4: HTTPS kontra SSH#

Myślałem, że po naprawie SSH będzie z górki. A push znów padł:

error: RPC failed; HTTP 400 curl 22 ...
fatal: the remote end hung up unexpectedly

Skoro SSH już działało, przełączyłem remote na SSH:

git remote set-url origin git@github.com:TwojaNazwa/twoje-repo.git
git push -u origin main

Pułapka 5: znaki, które nie są tym, czym myślisz#

Przez chwilę nic nie działało, bo w komendach… wpisywałem złe znaki. ~ zamieniało mi się na ¬, a -l na -1. Terminal grzecznie szukał katalogu ¬ i zwracał błąd, który z pozoru nie miał sensu.

Morał#

Zauważ wzorzec: „jakby nie działa” prawie nigdy nie znaczy, że komenda zawiodła. Znaczy, że terminal jest w jakimś stanie, którego nie widzę — czeka w pagerze, czeka na domknięcie cudzysłowu, albo dostaje inne znaki, niż myślę.

Jeśli utknąłeś na którejś z tych pięciu — daj znać w komentarzu. Następnym razem rozbroisz je w minutę.