Git Worktree: Jak Pracować na Kilku Branchach Naraz

Jesteś w trakcie zmian w trzech plikach na feature branchu, nic jeszcze nie zacommitowane, gdy kolega pisze o null-pointerze, który wywala produkcję. Standardowy ruch to git stash, checkout na main, poprawka, push, a potem git stash pop w nadziei, że nic w twojej niedokończonej funkcjonalności nie zależało od plików, od których właśnie odszedłeś. git worktree pomija całą tę żonglerkę. Robi checkout brancha z hotfixem do drugiego folderu, obok twojego feature brancha, a oba korzystają z tego samego repozytorium. ...

24 października 2026 · 5 min · 904 słów · SpaghettiCoder

Git Reset vs Revert vs Restore: Jak Cofnąć Zmiany

Zrobisz git reset --hard na commicie, który zespół już pobrał, i twoja historia zaczyna się różnić od jego historii. Zrobisz git revert na literówce, której jeszcze nie wypchnąłeś, i dodajesz do logu bezsensowny commit. Git ma cztery polecenia do cofania zmian: restore, reset, commit --amend i revert. Nie są wymienne. Wybierz niewłaściwe i albo nic się nie stanie, albo stanie się dużo więcej, niż chciałeś. O wyborze decyduje to, gdzie zmiana aktualnie się znajduje: w working tree, w staging area, w commicie, który masz tylko ty, czy w commicie, który już wypchnąłeś. ...

3 października 2026 · 6 min · 1223 słów · SpaghettiCoder

Tunelowanie SSH: Port Forwarding -L, -R i -D

Jak dostać się do bazy danych, która nasłuchuje tylko na localhost? Instancja Postgres na zdalnym serwerze celowo wiąże się z 127.0.0.1. Nic w sieci nie może jej dosięgnąć, tylko procesy działające na tej samej maszynie. Twój laptop nie jest tą maszyną, więc psql -h remote-server -p 5432 kończy się błędem, zanim w ogóle dojdzie do uwierzytelnienia. Otwarcie tego portu na świat przekreślałoby sens trzymania bazy na loopbacku. Chcesz na chwilę pożyczyć widok, jaki zdalna maszyna ma na 127.0.0.1, z własnego terminala. W momencie logowania SSH ma już otwarte, szyfrowane i uwierzytelnione połączenie między dwiema maszynami. Port forwarding wykorzystuje to połączenie do przesyłania ruchu spoza twojej powłoki. ...

24 września 2026 · 7 min · 1299 słów · SpaghettiCoder

Cache Zależności w GitHub Actions

Workflow, który przy każdym push uruchamia npm ci, za każdym razem pobiera z registry te same kilkaset pakietów, nawet gdy lockfile nie zmienił się od tygodnia. W projekcie z prawdziwym drzewem zależności to minuta czy dwie stracone, zanim ruszy pierwszy test, i płacisz to ponownie przy każdym push i każdym pull request. actions/cache przechowuje te pobrania między uruchomieniami i przywraca je, gdy nic istotnego się nie zmieniło. Jak action decyduje o hit czy miss actions/cache zapisuje każdy wpis pod wartością key, którą sam wybierasz, ograniczoną do brancha, który go utworzył. Uruchomienie może odczytać cache z własnego brancha i z brancha domyślnego. Przy przywracaniu action porównuje twój key z tym, co jest zapisane: ...

23 września 2026 · 6 min · 1069 słów · SpaghettiCoder

Jak Udostępnić Lokalny Serwer przez Cloudflare Tunnel

Dostawca webhooków potrzebuje adresu URL, pod który może wysłać POST, a twój serwer siedzi na localhost:3000. Albo kolega chce przeklikać branch, który akurat uruchomiłeś, albo telefon musi trafić do serwera deweloperskiego, żeby sprawdzić layout. Serwer działa. Nic spoza twojej sieci się do niego nie dostanie. Przekierowanie portu na routerze by zadziałało, ale wystawia twój domowy IP i wymaga uprawnień administratora, których często nie masz. Cloudflare Tunnel idzie w drugą stronę. cloudflared, mały daemon uruchomiony obok serwera, otwiera połączenie wychodzące do brzegu sieci Cloudflare, a Cloudflare odsyła przez nie ruch z powrotem. Nie otwierasz żadnego portu przychodzącego i nie potrzebujesz publicznego IP. ...

23 września 2026 · 6 min · 1241 słów · SpaghettiCoder

Git Bisect: Jak Znaleźć Commit, który Wprowadził Buga

Testy są zielone od trzech tygodni. Dziś npm test pada na asercji, która nie ma nic wspólnego z tym, co właśnie zmieniłeś, a git log v1.4.0..HEAD pokazuje 340 commitów od czterech osób od ostatniego release’a, o którym ktoś był pewien, że działa. Przeczytanie każdego diffa kosztuje cały dzień. Losowe przełączanie się między commitami idzie szybciej, ale wciąż nie jest planem. git bisect zamienia to w wyszukiwanie binarne. Podajesz mu jeden commit, o którym wiesz, że jest dobry, i jeden, o którym wiesz, że jest zepsuty; narzędzie robi checkout commita w połowie drogi między nimi i czeka, aż przetestujesz właśnie ten commit i zgłosisz wynik. Każda odpowiedź zmniejsza zakres o połowę. 340 commitów da się rozstrzygnąć w maksymalnie 9 testach, bo 2^9 = 512. ...

22 września 2026 · 5 min · 1050 słów · SpaghettiCoder

Co to Jest DNS i Jak Działa Rozwiązywanie Nazw

Co DNS naprawdę robi przy każdym żądaniu Każde żądanie do example.com zaczyna się od wyszukania, które nie ma nic wspólnego z twoją aplikacją: coś musi zamienić tę nazwę na adres IP, zanim jakikolwiek pakiet TCP opuści maszynę. Tym tłumaczeniem jest DNS, Domain Name System, i działa przy każdym żądaniu, niezależnie od tego, czy klientem jest przeglądarka, curl, czy usługa backendowa łącząca się z inną po hostname. Nie ma za tym jednej tabeli. DNS to hierarchia serwerów, z których każdy odpowiada za wycinek przestrzeni nazw, odpytywanych po kolei, aż przyjdzie odpowiedź. Znajomość tego łańcucha zamienia “strona nie działa” w “certyfikat wygasł” albo “rekord wciąż wskazuje na stary adres IP”: dwa zupełnie różne problemy, które z poziomu karty przeglądarki wyglądają identycznie. ...

21 września 2026 · 7 min · 1305 słów · SpaghettiCoder

Co to Jest TLS i Jak Działa Szyfrowanie HTTPS

Co TLS naprawdę chroni w połączeniu HTTPS Otwórz stronę przez zwykłe http:// w sieci, której nie kontrolujesz, na lotnisku albo na routerze w kawiarni, a wszystko, co wysyłasz, leci jako czytelny tekst. Ścieżka URL, ciasteczka, pola formularza, hasło w POST-cie logowania: każdy w tej sieci ze snifferem pakietów odczyta to w locie. TLS, Transport Layer Security, to protokół, który to blokuje. Siedzi między TCP a protokołem aplikacji, więc zanim HTTP zacznie w ogóle mówić, połączenie jest już zaszyfrowane i powiązane ze zweryfikowaną tożsamością serwera. HTTPS to po prostu HTTP puszczony przez takie połączenie zamiast przez zwykłe. ...

20 września 2026 · 9 min · 1759 słów · SpaghettiCoder

Czym Jest Kolejka Wiadomości i Jak Jej Używać

Endpoint checkoutu, który zmniejsza obraz produktu, wysyła email z potwierdzeniem i aktualizuje silnik rekomendacji przed odpowiedzią 200 OK, jest tak szybki jak jego najwolniejszy krok. Jeśli którykolwiek z nich przekroczy limit czasu, cały request się wywala. Kolejka wiadomości pozwala endpointowi oddać tę pracę jako wiadomości i od razu odpowiedzieć, podczas gdy osobne workery odbierają je we własnym tempie. Co faktycznie robi kolejka wiadomości Kolejka wiadomości siedzi między dwiema częściami systemu, które nie muszą działać w tym samym momencie. Producer publikuje wiadomość opisującą pracę do wykonania. Kolejka ją przechowuje. Consumer ją odbiera, przetwarza i potwierdza. Te dwie strony nigdy nie rozmawiają ze sobą bezpośrednio. ...

18 września 2026 · 6 min · 1177 słów · SpaghettiCoder

Co to Jest Terraform i Jak Działa Infrastructure as Code

Każdy zasób w chmurze, jaki kiedykolwiek stworzyłeś, klikając w konsoli webowej (VM, load balancer, rekord DNS), da się też opisać w pliku tekstowym i utworzyć jedną komendą. Plik trafia do git, przechodzi przez pull request i odtwarza ten sam setup na drugim koncie, bez konieczności pamiętania, które dziewięć ustawień zmieniłeś ręcznie. Dokładnie to robi Terraform. Co właściwie robi Terraform Terraform to open-source’owe narzędzie od HashiCorp, które zamienia infrastrukturę na pliki konfiguracyjne napisane w HCL (HashiCorp Configuration Language) i wprowadza je w życie przez API dostawcy chmury. Piszesz blok resource, opisujący bucket S3, instancję EC2 albo rekord DNS w Cloudflare, uruchamiasz terraform apply, a Terraform sam wylicza wywołania API potrzebne, żeby ten zasób powstał — a potem go śledzi, więc kolejny apply zmienia tylko to, co faktycznie się zmieniło. ...

17 września 2026 · 7 min · 1365 słów · SpaghettiCoder