Y a-t-il une commande Git (ou une courte séquence de commandes) qui fera en toute sécurité et sûreté ce qui suit ?
- Se débarrasser de toutes les modifications locales.
- Récupérer la branche donnée depuis l'origine si nécessaire
- Passer à la branche donnée ?
Actuellement, je suis bloqué avec :
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
mais cela me dérange car on me demande le mot de passe deux fois (par fetch
et pull
). En général, je serais content avec n'importe quelle solution tant que le mot de passe n'est requis qu'une seule fois.
Quelques remarques :
- C'est une partie d'un script de déploiement fait maison pour une application (le code est hébergé sur GitHub).
- Il ne devrait pas y avoir de différence si la branche a déjà été récupérée depuis l'origine ou non (c'est-à-dire que le premier déploiement d'une nouvelle branche ne devrait idéalement nécessiter aucune étape supplémentaire).
- Le script est situé sur une machine distante à laquelle plusieurs personnes peuvent accéder, donc aucune information d'identification n'est stockée et l'utilisateur/mot de passe doit être entré (mais seulement une fois si possible).
- Je ne me préoccupe pas des modifications locales ; je veux toujours une copie vierge de la branche donnée (la partie ultérieure du script de déploiement produit des modifications locales).
- Je ne peux pas cloner ou exporter un nouveau dépôt à chaque fois ; cela prend trop de temps.