Účel
Odstranění je jediná změna, kterou pozdější commit nemůže vrátit: smazaný nesledovaný soubor, zahozený worktree s necommitnutými úpravami, branch, jejíž commity nedosáhly na žádný remote, proces, na který se spoléhala jiná relace. V repozitáři, který sdílí mnoho pracovníků, je „tohle vypadá nepoužívané“ hádání o práci jiných lidí. Tato dovednost mění hádání v klasifikaci s důkazy a staví vratný krok před nevratný.
Kdy použít
Před smazáním čehokoli, co jste v této relaci nevytvořili: souboru nebo adresáře, lokální nebo vzdálené větve, propojeného worktree, stashe, záznamu pod vrstvou, adresáře buildu, který může sdílet jiný checkout, serveru nebo procesu na pozadí. Také před hromadnou operací, jejíž výběr je vzor, ne seznam.
Ne tato dovednost: odstranění souboru, který vaše vlastní necommitnutá změna právě přidala, nebo regenerace projekce (regenerujte ji; nikdy žádnou nemažte ručně).
Postup
1. Pojmenujte každého kandidáta
Vypište kandidáty explicitně, jednoho na řádek, s identitou, na kterou může příkaz působit: cesta relativní k repozitáři, plný název refu, cesta worktree, id záznamu, id procesu a jeho plný příkazový řádek. Vzor není kandidát; nejdřív ho rozviňte a přečtěte seznam.
2. Zařaďte každý
Pro každého kandidáta odpovězte příkazem, jehož výstup je důkazem:
| otázka | evidence |
|---|---|
| Je sledovaný, generovaný, nebo lokální? | git ls-files, hlavička generovaného souboru, majordomus scope <p> |
| Odkazuje se na to něco? | git grep -n <name>, majordomus context resolve <p>, indexový zdroj pro něj |
| Nárokuje si to jiný pracovník? | nástěnka peerů (majordomus_peers), scripts/collision-check --new <p> |
| Drží práci, která není dosažitelná nikde jinde? | git log --oneline <ref> --not --remotes, git status ve worktree, git stash list |
| Dělá proces něco pro někoho? | celý příkazový řádek a pracovní adresář, nikdy shoda podle jména |
Sloučená větev může ve svém worktree stále držet nedokončenou práci; nula unikátních commitů neznamená, že není co ztratit. Proces nalezený podle jména může patřit jiné relaci.
3. Ohodnoťte riziko
- nízká — odvozeno nebo reprodukovatelné, nikým nereferencováno, nikým nenárokováno.
- střední — lokální práce, která existuje jinde (pushnutá), nebo odkaz, který lze aktualizovat ve stejné změně.
- vysoké — práce dostupná nikde jinde, nárok jiného workera, nebo jakákoli odpověď výše, kterou jste nemohli získat. Nevědět je vysoké.
4. Nejdřív udělejte vratný krok
Pushněte větev nebo vytvořte rescue ref (git branch rescue/<name> <sha> a pushněte jej) pro cokoli, co drží práci; zkopírujte ignorované a cenné věci ze stromu dřív, než strom odstraníte; zastavte proces podle jeho vlastního id, nikdy podle vzoru. Vysoce rizikový kandidát se v této relaci neodstraňuje, pokud to jeho vlastník neřekne slovy; zaznamenejte jej místo toho.
5. Odstranění a ověření
Odstraňujte kandidáty s nízkou a střední jistotou, po jedné třídě. Poté spusťte to, co by si chyby všimlo: majordomus doctor, případy pokrývající dotčené cesty, git worktree list, nástěnku peerů. Odstranění, které nic neověřilo, není dokončené.
Výstup
Tabulka odstranění, jeden řádek na kandidáta:
| kandidát | třída | evidence | riziko | akce | ověření |
|---|
následované vytvořenými rescue refy, kandidáty ponechanými na místě s důvodem a ověřovacími příkazy s jejich exit kódy. Každý řádek hlaste se stavem, který definuje dovednost report-verification-state: odstranění, jehož ověření neproběhlo, je PARTIAL, ne hotovo.