2017-08-29 9 views
0

J'ai travaillé sur deux tâches en même temps: écrire du code et créer un sous-module dans un dossier de mon arbre de travail. Quand j'ai changé de tâche, j'ai simplement git stash save mes fichiers modifiés. Le problème est que mes fichiers modifiés font maintenant partie du nouveau sous-module.Appli git stash pop au nouveau sous-module

Et quand je tente de faire un git stash pop sur le dossier haut, je me suis beaucoup de conflits

$ git stash pop 
error: refusing to lose untracked file at 'folder/file1' 
error: refusing to lose untracked file at 'folder/file2' 
[and so on] 

CONFLICT (modify/delete): [folder]/file1 deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of [folder]/file1 left in tree. 
CONFLICT (modify/delete): [folder]/file2 deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of [folder]/file2 left in tree. 
[and so on] 
CONFLICT (file/directory): There is a directory with name [folder] in Stashed changes. Adding [folder] as [folder]~Updated upstream 

Où [dossier] est le dossier précédent/nouvelle sous-module

Je l'ai fait un clone propre du repo complet et il n'y a pas de problème avec le nouveau sous-module.

Existe-t-il un moyen de transférer la mémoire vers le sous-module? Ou pour obtenir les fichiers dans la cachette et les fusionner manuellement dans le sous-module?

+1

Git est une telle douleur parfois. – Rolf

Répondre

0

J'ai trouvé une solution «hacky».

D'abord j'ai fait un patch git de ma cachette avec git stash show [email protected]{0} -p.

Ensuite, j'ai modifié manuellement le correctif pour modifier mes chemins et supprimer les éléments indésirables.

Puis git patch mypatch.patch pour appliquer les modifications à mon sous-module. Cela a fonctionné au premier essai et semble construire sans aucun problème.