Points de restauration et stash Git
Ces blocs sont des cas différents, pas un script unique. Choisissez celui de votre dépôt. Remplacez branches, chemins et VERIFIED_COMMIT avant usage. Les commandes d’annulation concernent seulement leur opération active ; n’exécutez pas les deux alternatives.
Réponse courte
Les points de restauration FluxGit enregistrent des états pour récupérer des opérations d’historique couvertes. Un stash manuel met les modifications locales de côté : c’est un autre parcours.
Exemple et conditions
Le tutoriel G12 change de branche avec des modifications tracked en attente. Les fichiers untracked restent dans le répertoire, sauf inclusion explicite.
Examiner avant de modifier
Inspectez git status --short et git diff. Décidez quoi conserver avant de changer de branche ; un répertoire propre n’est pas une sauvegarde permanente.
git status --short
git diffGarder une référence ou un checkout séparé
Créez un stash manuel avec un message reconnaissable. git stash push garde les modifications tracked ; ajoutez -u uniquement pour inclure aussi les fichiers untracked.
git stash push -m "school/manual-before-switch"
git stash listPremier parcours
Vérifiez git stash list et changez de branche. Au retour, examinez le contexte avant d’appliquer l’entrée choisie.
git switch target-branchChoisir l’autre résultat consciemment
git stash apply conserve l’entrée. git stash pop la supprime seulement après une application réussie ; un conflit conserve l’entrée.
git stash show --patch 'stash@{0}'
git stash apply 'stash@{0}'Limites et exceptions
Les points automatiques couvrent reset, rebase, cherry-pick, revert et merge par leurs chemins protégés. Discard et clean ne créent pas un Flux restore point universel.
Conflits et nettoyage
En cas de conflit, examinez les fichiers et résolvez-le délibérément. Ne répétez pas pop et ne supprimez pas l’entrée pour masquer le travail restant.
Vérifier le résultat
Vérifiez fichiers, index et tests après l’application du stash. Supprimez une entrée seulement quand le travail voulu est bien conservé.
git status --short
git diff
git diff --cachedQuestions fréquentes
Un stash n’est pas publié automatiquement par push et ne remplace pas une sauvegarde. La récupération exige la conservation de l’état local pertinent.
Examiner l’opération dans FluxGit
Safety Timeline réunit mouvements du reflog, risques et points de restauration. Les données des points restent locales ; utilisez l’aperçu et le contexte de récupération propre à chaque opération.
Références officielles Git
Changer de branche avec du travail inachevé : git stash en images
Rangez une modification suivie avec git stash, nommez-la, changez de branche et revenez pour utiliser pop. Voyez pourquoi les fichiers non suivis restent et la différence entre apply et un pop réussi. Avec les commandes du terminal.
Regarder sur YouTube — ouvre un nouvel onglet
Enregistré dans un dépôt de test. Narration en anglais et sous-titres en français.
Lire la transcription de la narration
- Vous êtes au milieu d'une modification et devez consulter une autre branche immédiatement. Ce n'est pas prêt à être commité, et vous ne voulez pas le perdre.
- Voici la modification inachevée, dans app.py.
- Un stash range les modifications suivies par Git. Ici, il sauvegarde la modification d'app.py et la retire du dossier de travail. Les fichiers non suivis restent sur le disque. Un pop réussi restaure la modification et supprime son entrée de stash.
- Choisissez Stash current changes et donnez un nom que vous reconnaîtrez plus tard.
- Passez à l'autre branche. La modification suivie est dans le stash. Le fichier non suivi reste dans le dossier.
- Vous avez terminé. Retour sur main.
- Faites pop du stash. La modification est revenue dans app.py, et le stash a disparu.
- Apply ou pop ? Apply restaure les modifications et conserve l'entrée de stash. Pop ne supprime l'entrée que si les modifications s'appliquent correctement. En cas de conflits, le stash est conservé.
- Dans le terminal : git stash push avec un message, changez de branche et revenez, puis git stash pop.
- Récapitulatif. Le travail inachevé va sur une étagère, pas dans un commit à moitié terminé. Prochaine leçon : nettoyer vos commits avant la pull request.