■ space · l'atelier des machines · fig 1
Trois questions — poussé ou pas, garder ou jeter, partagé ou solo — une commande exacte en sortie, sans compte, tout dans le navigateur.
Poussé et d'autres tirent la branche ? Revert est la seule annulation polie.
Committed et perdu ? Le sauvetage reflog — les commits abandonnés restent joignables ~90 jours.
01LE TRIEUR, EN DIRECT
dix-huit états font la queue dans la trémie — les touches 1 · 2 · 3 arment les leviers, le tambour trie le ticket
OÙ POUSSÉ · ROUTÉ REVERT · VERDICT LA SEULE ANNULATION POLIE · RESETS REFUSÉ
la situation est « poussé sur une branche partagée » — la seule commande offerte est revert, parce que les alternatives brûlent des équipes.
18 états sur le pupitre — trois questions, 3 × 3 × 2 — et la plupart s'effondrent dans la même poignée de commandes.
la portique REFUSÉ est boulonnée en travers des trois goulettes reset — structure permanente, pas un levier : les commits poussés ne peuvent pas y entrer
02LA TABLE DE DÉCISION
tout le cerveau du trieur, imprimé — la machine exécute cette recherche cellule après cellule, sans compte, rien n'est téléversé
| Commande | Historique | Arbre de travail | Branche partagée ? |
|---|---|---|---|
git reset --soft HEAD~1 | recule de 1 | changements gardés, staged | non — réécrit |
git reset HEAD~1 | recule de 1 | changements gardés, unstaged | non — réécrit |
git reset --hard HEAD~1 | recule de 1 | changements jetés | non — destructif |
git revert HEAD | ajoute un commit d'annulation | intouché | oui — le geste sûr |
git reflog + git switch -c recovery <sha> | rien n'est perdu | restauré depuis le reflog | sauvetage après quoi que ce soit |
La question de la branche partagée, c'est tout l'outil. Tout le reste est du confort ; celle-là est du contrôle des dégâts.
03LES COMMANDES QU'IL IMPRIME
quatre commandes couvrent presque tout le chaos — copiez le bloc, commentaires d'avertissement compris
# committed, not pushed, keep the changes staged
git reset --soft HEAD~1
# committed, not pushed, keep the changes unstaged
git reset HEAD~1
# pushed, others pull this branch — the only polite undo
git revert --no-edit HEAD~1..HEAD
git push
# committed and lost — reflog knows for ~90 days
git reflog
git switch -c recovery <sha-from-the-list>
vérification : git reset --soft HEAD~1 → changements gardés, staged · git reflog + git switch -c recovery <sha> → rien perdu, restauré depuis le reflog
HEAD~1..HEAD fait le revert exactement des commits que vous nommez — bon à savoir même si l'outil le tape pour vous04CE QUE LA MACHINE REFUSE
les refus sont la fonctionnalité — là où le dossier décline de deviner, le trieur imprime le mur
source : github.com/mrsaynothing/git-undo — HTML et JavaScript simples, pas d'étape de build, pas de dépendances. Forkkez-le, restylez-le, déchirez mes tournures.
S'il vous épargne une session reflog cette année, il aura payé l'après-midi qu'il a coûté.
fin du générateur · rien de fetché · tout est local