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

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鈥檃, 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

Git Rebase vs Merge: r贸偶nice i kiedy kt贸ry wybra膰

Robisz pull najnowszego main, a Git zatrzymuje si臋 z CONFLICT (content): Merge conflict in checkout.js. Rozwi膮zujesz konflikt, a w logu pojawia si臋 commit o nazwie Merge branch 'main' into feature/checkout, le偶膮cy na trzech commitach, kt贸re faktycznie napisa艂e艣. Cztery commity, jedna prawdziwa zmiana. Kolega, kt贸ry za miesi膮c przeczyta t臋 histori臋, nie ma szans rozpozna膰, kt贸ry jest kt贸ry. git merge i git rebase odpowiadaj膮 na to samo pytanie: jak zaktualizowa膰 sw贸j branch o zmiany zrobione gdzie艣 indziej. Zostawiaj膮 za sob膮 bardzo r贸偶ne 艣lady, a wybranie z艂ego na wsp贸lnym branchu robi realn膮 szkod臋. ...

13 wrze艣nia 2026 路 7 min 路 1462 s艂贸w 路 SpaghettiCoder