Bonjour le web,
J’ai eu un soucis avec git stash :
src/[...]/Form/PretType.php already exists, no checkout Could not restore untracked files from stash
Voici la procédure que j’ai appliqué à partir de ce StackOverflow.
Tous d’abord commençons par la commande git log --graph --all --decorate --oneline qui doit produire une sortie similaire à :
* ea60368 (HEAD, master) Correction vue fiche SAV | | *-. 5851b46 (refs/stash) WIP on master: 6b106ff Correction config | |\ \ |/ / / | | * b78a5fd untracked files on master: 6b106ff Correction config | * 044e6c8 index on master: 6b106ff Correction config |/ * 6b106ff Correction config
On peux voir notre stash en ligne 3 (la ligne 6 pour les fichiers suivis par git et la 7 pour les fichiers non suivis). Nous allons désormais créer une branche temporaire et faire nos modifications dessus :
git checkout -b recup stash^ rm src/[...]/Form/PretType.php git commit -a git stash apply --index
Désormais un git status devrait afficher quelque chose comme :
Sur la branche recup Modifications qui seront validées : (utilisez "git reset HEAD <fichier>..." pour désindexer) modifié: src/[...]/Controller/PretController.php modifié: src/[...]/Entity/Pret.php modifié: src/[...]/Resources/config/routing/pret.yml modifié: src/[...]/Resources/config/services.yml modifié: src/[...]/Resources/views/Pret/create.html.twig modifié: src/[...]/Resources/views/Pret/delete.html.twig modifié: src/[...]/Resources/views/Pret/edit.html.twig modifié: src/[...]/Resources/views/Pret/list.html.twig modifié: src/[...]/Resources/views/Pret/view.html.twig Chemins non fusionnés : (utilisez "git reset HEAD <fichier>..." pour désindexer) (utilisez "git add/rm <fichier>..." si nécessaire pour marquer comme résolu) supprimé par nous :src/[...]/Form/PretType.php Fichiers non suivis: (utilisez "git add <fichier>..." pour inclure dans ce qui sera validé) app/DoctrineMigrations/Version20150720145833.php src/[...]/Resources/views/Pret/layout.html.twig src/[...]/Resources/views/Pret/print.html.twig
On ajoute le fichier problématique avec git add src/[...]/Form/PretType.php ou avec git add . si vous avez plusieurs fichiers a enregistrer (comme mon cas) puis on commit avec git commit. Avec git log --graph --all --decorate --oneline, on retrouve nos deux commit (lignes 1 et 2) effectué plus haut :
* 388a387 (recup) Ajout des prêt + diverse correction * c4c4ee8 Correct git stash | * ea60368 (HEAD, master) Correction vue fiche SAV |/ | *-. 5851b46 (refs/stash) WIP on master: 6b106ff Correction config | |\ \ |/ / / | | * b78a5fd untracked files on master: 6b106ff Correction config | * 044e6c8 index on master: 6b106ff Correction config |/ * 6b106ff Correction config
Nous allons ensuite fusionner notre branche master avec notre branche de récupération :
git checkout master git merge recup --squash
La sortie devrais être la suivante :
Validation compressée -- HEAD non mise à jour La fusion automatique a réussi ; stoppée avant la validation comme demandé
Enfin, on commit les modifications fusionnées (à l’aide du --squash
avec git commit -a. On supprime notre branche de récupération (git branch -D recup) ainsi que notre stash (git stash drop) et on effectue un git log --graph --all --decorate --oneline et TADAAA :
* 2df2b96 (HEAD, master) Ajout des prêt + diverse correction * ea60368 Correction vue fiche SAV * 6b106ff Correction config * 202e49b (origin/master) Correct config
Tous va bien sur notre branche master et vous avez réussi à enregistré votre fichier dans ce capricieux .