# Git: jedno miejsce na cały projekt (gałąź `main`) **Dla agenta Cursor.** Instrukcja dla właściciela (człowieka): **[DLA_WLASCICIELA/01_GIT_BACKUP_I_MAIN.md](DLA_WLASCICIELA/01_GIT_BACKUP_I_MAIN.md)** — nie czytaj jej przy zwykłej pracy. --- ## Zasada w jednym zdaniu **Cały aktywny kod V10 żyje tylko w tym repozytorium, na gałęzi `main`, w katalogu głównym `gema0/` — po każdej sesji zapisz zmiany w git i wypchnij na `origin/main`.** --- ## Co jest „prawdą” (V10) | Ścieżka | Zawartość | |---------|-----------| | `backend/` | Serwer i moduły APEX (`.mjs`) | | `frontend/sequencer-ui/` | UI NLE | | `_docs/` | Plany, protokół agenta, dziennik | | `package.json` | Wersja `10.1.0`, skrypty `npm start`, `test:apex` | | `.env` | Lokalnie u Ciebie — **nigdy** do git (jest w `.gitignore`) | Stary system: tylko `legacy/` — **nie** mieszać z `backend/` V10. Mapa katalogów: [../STRUCTURE.md](../STRUCTURE.md) --- ## Przed pracą (Ty lub agent) ```powershell cd c:\xampp\htdocs\programdocursora\_RPA_AUTOMATION\gema0 git checkout main git pull origin main ``` Jeśli `git pull` zgłasza konflikt — **zatrzymaj się** i rozwiąż konflikt, zanim zaczniesz nowe zmiany. --- ## Po pracy — obowiązkowy cykl (5 kroków) ```powershell git status git add -A git status git commit -m "krótki opis: co zrobiłeś i dlaczego" git push origin main ``` ### Co oznacza `git status` | Komunikat | Znaczenie | Co zrobić | |-----------|-----------|-----------| | `nothing to commit, working tree clean` | Wszystko zapisane w commicie | OK — ewentualnie `git push` jeśli `ahead` | | `Changes to be committed` | Pliki w „poczekalni”, **jeszcze nie w historii** | Zrób `git commit` i `git push` | | `Changes not staged` | Zmiany na dysku, git ich nie ma | `git add -A` → `commit` → `push` | | `Your branch is ahead of 'origin/main'` | Commity tylko u Ciebie | `git push origin main` | | `behind 'origin/main'` | Ktoś inny / inny komputer wypchnął nowsze | `git pull` → potem praca / merge | **Uwaga:** Samo `git add` **nie wystarczy** — bez `commit` i `push` inna maszyna lub agent zobaczy starą wersję. --- ## Czego unikać (częste przyczyny rozjazdów) 1. **Praca na innej gałęzi** (`cursor/...`, `projektx/...`) bez merge do `main` — tam zostaje stary kod. 2. **Kopiowanie folderów ręcznie** zamiast `git pull` — powstają dwa `gema0` z różną zawartością. 3. **Zostawianie zmian tylko „staged”** — wygląda jakby było w repo, ale nie ma commita. 4. **Edycja plików w `legacy/`** myśląc że to V10 — V10 to wyłącznie root `backend/` + `frontend/sequencer-ui/`. 5. **Brak `git push`** — commit lokalny nie trafia na GitHub / drugi PC. --- ## Dla agentów Cursor (obowiązkowe) Na **końcu sesji**, jeśli zmieniono pliki w repo: 1. Uruchom `git status` i upewnij się, że **wszystkie pliki V10** są w commicie (nie tylko staged). 2. Zaproponuj właścicielowi **jeden commit** na `main` z czytelną wiadomością — albo wykonaj commit **tylko gdy użytkownik poprosi** (domyślnie: przypomnij o `commit` + `push`). 3. Dopisz wpis w [AGENT_LOG.md](AGENT_LOG.md) z listą plików i **hasłem commita** (jeśli był). 4. Nie twórz równoległych kopii `package.json` w `legacy/` — manifest npm jest **tylko w korzeniu**. --- ## Szybka kontrola: czy V10 jest w repo? ```powershell git ls-files backend/server.mjs package.json git log -1 --oneline ``` Oba poleczenia powinny coś wypisać. Jeśli `server.mjs` **nie** jest na liście — plik nie jest w repozytorium i trzeba `git add` + `commit` + `push`. Testy przed pushem (zalecane): ```powershell npm run test:apex ``` --- ## Powiązane - [03_AGENT_PROTOCOL.md](03_AGENT_PROTOCOL.md) — protokół sesji agenta - [README.md](README.md) — mapa dokumentacji - Archiwum starej instrukcji git: [../legacy/_docs-archive/GIT_I_GALEZIE.md](../legacy/_docs-archive/GIT_I_GALEZIE.md)