2017-08-29 2 views
0

Ich arbeitete an zwei Aufgaben gleichzeitig: Schreiben von Code und machen einen Ordner von meinem Arbeitsbaum ein Submodul. Als ich die Aufgabe wechselte, habe ich einfach meine geänderten Dateien git stash save. Das Problem ist, dass meine geänderten Dateien jetzt Teil des neuen Submoduls sind.Appliy Git stash pop zu neuen Submodul

Und wenn ich versuche, einen git stash pop auf dem obersten Ordner zu tun, habe ich eine Menge Konflikte

$ 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 

Wo [Ordner] die vorherigen Ordner/new Submodul

ich einen sauberen Klon tat von dem kompletten Repo und dem gibt es kein Problem mit dem neuen Submodul.

Gibt es eine Möglichkeit, das Versteck auf das Submodul zu übertragen? Oder um die Dateien in den Stash zu bekommen und sie manuell im Submodul zusammenzuführen?

+1

Git ist so ein Schmerz manchmal. – Rolf

Antwort

0

Ich fand eine 'hacky' Lösung.

Zuerst machte ich einen Git Patch aus meinem Versteck mit git stash show [email protected]{0} -p.

Dann habe ich den Patch manuell bearbeitet, um meine Pfade zu ändern und die unerwünschten Dinge zu entfernen.

Dann git patch mypatch.patch, um die Änderungen an meinem Submodul zu übernehmen. Es funktionierte beim ersten Versuch und scheint ohne Probleme zu bauen.