Git przy pracy z AI: jak nie stracić kontroli nad projektem
AI potrafi w kilka minut dopisać funkcję, przebudować formularz albo przygotować pierwszą wersję aplikacji. To realne przyspieszenie. Ale im szybciej zmienia się kod, tym łatwiej stracić orientację, co faktycznie zostało ruszone. Git jest prostym sposobem, żeby nad tym zapanować.
Notatka przed czytaniem
Nie ufaj opisowi zmiany. Sprawdzaj diff
Model może napisać: „Poprawiłem walidację formularza i nie zmieniałem innych elementów”. Brzmi dobrze, ale opis nie jest dowodem. Dowodem jest diff, czyli porównanie poprzedniej i obecnej wersji pliku.
- <button type="submit">Wyślij zapytanie</button>
+ <button type="submit">Wyślij</button>
- if (!email || !phone) return showError("Podaj email i telefon");
+ if (!email) return showError("Podaj email");
- exportRow.push(lead.internalNote);
+ // usuniętoPrzycisk zmienił tekst. Walidacja telefonu zniknęła. Eksport CSV stracił pole. Opis mówił „poprawka walidacji”. Diff pokazuje pełniejszą prawdę.
AI nie zawsze zmienia rzeczy celowo. Czasem „porządkuje” fragment, który wygląda na zbędny, ale w praktyce wynika z decyzji biznesowej. Bez Gita taki efekt uboczny często wychodzi dopiero wtedy, gdy klient albo zespół zgłosi problem.
Branch: eksperyment bez niszczenia stabilnej wersji
Stabilna wersja projektu powinna zostać na głównej gałęzi. Większą zmianę warto robić osobno, na branchu. Dzięki temu AI może przebudowywać komponenty, zmieniać strukturę danych i testować rozwiązania bez ryzyka, że przerwie działający system.
Przykład dla panelu leadów:
git switch -c feature/lead-priorityNa takim branchu można dodać priorytety, statusy, notatki wewnętrzne i zmiany w eksporcie CSV. Dopiero po sprawdzeniu łączy się zmianę ze stabilną wersją.
Commit: zapis decyzji, nie tylko kodu
Przy szybkiej pracy z AI łatwo wpaść w tryb ciągłego poprawiania bez zatrzymania. Po godzinie projekt wygląda inaczej, ale nikt nie wie, które zmiany były świadome, a które są skutkiem ubocznym.
Commit powinien powstawać po działającym etapie. Nie po całym dniu chaotycznych poprawek i nie po serii przypadkowych eksperymentów.
Dodaj pola priorytetu i statusu leadów
Rozszerz eksport CSV o notatkę wewnętrzną
Popraw filtrowanie leadów w panelu admina
Napraw walidację formularza kontaktowegoTaka historia jest czytelna dla człowieka, zespołu i kolejnej sesji z AI. Model dostaje konkretny kontekst zamiast zgadywać, czy zmiany były przypadkowe, testowe, czy gotowe do utrzymania.
Kiedy Git to przesada
Nie każdy projekt wymaga pełnego procesu. Jednorazowy skrypt do uporządkowania pliku, mały formularz bez logiki biznesowej albo notatnikowy prototyp mogą czasem obejść się kopią pliku i zdrowym rozsądkiem.
Git zaczyna mieć sens, gdy projekt:
- jest używany przez więcej niż jedną osobę
- ma wersję produkcyjną i jednocześnie jest rozwijany
- przechowuje logikę procesu biznesowego: eksport, obliczenia, integracje albo statusy
- jest modyfikowany często, szczególnie z pomocą AI
- ma wracać do wcześniejszych decyzji po kilku tygodniach lub miesiącach
Jeśli żaden z tych warunków nie zachodzi, nie ma przymusu. Jeśli choć jeden zachodzi, brak Gita jest świadomym ryzykiem, nie oszczędnością.
Minimum, które wystarczy na start
Nie trzeba znać całego Gita, żeby zyskać kontrolę nad projektem wspieranym przez AI. W małej firmie wystarczy prosty zestaw zasad.
1. Każdy projekt techniczny ma repozytorium
Aplikacja, automatyzacja, skrypt, konfiguracja i ważniejszy pipeline danych powinny mieć własną historię zmian.
2. Większe zmiany idą na branchu
Nie eksperymentujemy bezpośrednio na stabilnej wersji, szczególnie gdy AI dotyka formularzy, danych, eksportów albo integracji.
3. Przed akceptacją patrzymy na diff
Opis AI jest informacją pomocniczą. Diff pokazuje, co faktycznie zmieniło się w plikach.
4. Commit robimy po działającym etapie
Commit ma opisywać sensowny krok: funkcję, poprawkę, test, zmianę konfiguracji albo uporządkowanie konkretnego fragmentu.
5. Stabilna wersja dostaje tag albo release
Po wdrożeniu warto wiedzieć, do czego wrócić. Tag lub release jest prostym znacznikiem: „to działało i było opublikowane”.
Jak wygląda rozsądna sesja z AI
Dobry rytm pracy nie jest skomplikowany. Najpierw ustalasz zakres. Potem AI robi zmianę. Następnie sprawdzasz diff, uruchamiasz test lub build, poprawiasz błędy i dopiero wtedy commitujesz.
git status
git diff
npm run build
git add src/...
git commit -m "Dodaj kontrolę statusu leadów"Ten rytm jest nudny, ale skuteczny. Szczególnie tam, gdzie AI może dotknąć kilku plików naraz i wprowadzić zmianę, której nikt nie zauważy podczas samej rozmowy z modelem.
Co Git daje kolejnej sesji z AI
Git nie pomaga tylko człowiekowi. Pomaga też kolejnemu agentowi albo kolejnemu modelowi, który wraca do projektu. Zamiast opisu „coś było poprawiane”, ma historię konkretnych decyzji.
- widać ostatnie commity i ich intencję
- widać, które pliki są jeszcze zmienione
- można oddzielić zmiany robocze od gotowych
- łatwiej znaleźć moment, w którym pojawił się błąd
- da się cofnąć jeden etap bez ręcznego odtwarzania wszystkiego
W praktyce to skraca czas rozmowy z AI. Nie trzeba zaczynać od długiego opisu świata. Wystarczy sprawdzić repozytorium, status i historię zmian.
Podsumowanie
AI może przyspieszyć rozwój projektu. Może też przyspieszyć jego psucie, jeśli nie ma mechanizmu pozwalającego zobaczyć, cofnąć i zrozumieć każdą zmianę.
Git jest tym mechanizmem. Nie dla porządku, nie dla estetyki i nie dla programistycznego ceremoniału. Dla kontroli nad projektem, który zmienia się szybciej niż jesteś w stanie śledzić bez narzędzi.
Różnica między profesjonalnym wdrożeniem AI a serią eksperymentów zapisanych pod nazwą final_final_naprawione_3 często zaczyna się właśnie tutaj.
Pracujesz z AI nad aplikacją, automatyzacją albo skryptem?
Możemy pomóc uporządkować repozytorium, proces zmian, review i wdrożenia tak, żeby AI przyspieszała pracę, a nie dokładała chaosu do projektu.
Czytaj dalej w sekcji Techniczna
Jak zrobić transkrypcję filmu do tekstu za pomocą FFmpeg i faster-whisper
Praktyczny poradnik: film zamieniamy na audio przez FFmpeg, audio przepuszczamy przez lokalny model Whisper, a wynik zapisujemy do pliku tekstowego ze znacznikami czasu.
MAPI-local-medium: lokalny serwer MCP, który daje modelowi pamięć, narzędzia i granice
Techniczne wyjaśnienie, czym jest MAPI-local-medium: lokalny serwer MCP, który pozwala modelowi językowemu korzystać z pamięci projektowej, narzędzi, bootstrapu kontekstu i kontrolowanego środowiska pracy.
Dlaczego AI potrzebuje pamięci. RAG to za mało, kiedy liczy się ciągłość pracy
Sama wyszukiwarka kontekstu nie wystarcza, gdy AI ma pracować dłużej niż kilka minut. Zobacz, po co asystentowi pamięć, czym różni się od RAG i dlaczego bez niej wiele wdrożeń kończy się operacyjną amnezją.