La section Liens Derniers dans la chaîne: Stashing et la reflog dans http://ftp.newartisans.com/pub/git.from.bottom.up.pdf recommande stashing souvent de prendre des instantanés de votre travail en cours. L'auteur va jusqu'à recommander que vous pouvez utiliser une tâche cron pour planquer votre travail régulièrement, sans avoir à faire une planque manuellement.
La beauté de la planque est qu'il vous permet d'appliquer le contrôle de version discrète à votre processus de travail lui-même: à savoir, les différentes étapes de votre arbre de travail de jour en jour. Vous pouvez même utiliser Stash sur une base régulière si vous voulez, avec quelque chose comme le script de cliché suivant:
$ cat <<EOF > /usr/local/bin/git-snapshot #!/bin/sh git stash && git stash apply EOF $ chmod +x $_ $ git snapshot
Il n'y a aucune raison que vous ne pouviez pas faire exécuter par une tâche cron toutes les heures, ainsi que d'exécuter la commande reflog expire chaque semaine ou mois.
Le problème avec cette approche est:
- S'il n'y a pas de modifications apportées à votre copie de travail, le « appliquer git stash » entraînera votre dernière planque à appliquer sur votre copie de travail.
- Il pourrait y avoir des conditions de course entre le moment où la tâche cron exécute et l'utilisateur travaillant sur la copie de travail. Par exemple, « git stash » fonctionne, l'utilisateur ouvre le fichier, puis du script « de git stash appliquer » est exécutée.
Quelqu'un at-il des suggestions pour faire ce travail automatique Stashing plus fiable?