2017-08-03 2 views
1

Ich wurde per E-Mail ein Git Patch auf "Code1" mit Format-Patch erstellt. Problem ist, dass der Kollege, der es geschickt hat, eine andere Verzeichnisstruktur hat als ich. Meine Auswahl sieht aus wieAnwenden eines Git-Patch, wenn Repository-Verzeichnisstrukturen sich unterscheiden

/home 
    /mydir 
    /project 
     /code1 
      /src 
      /obj 
      /bin 
     /code2 
     /code3 

und mein .git in/Projekt sitzt. Er hat anscheinend nur/code1 und dort sitzt sein .git. Allerdings sieht sein /code1 genauso aus wie meine /code1.

Ich versuche den Patch mit git am anzuwenden, und es schlägt mit dem Fehler

error: src/foo.c: does not exist in index 
error: src/bar.c: does not exist in index 
Patch failed at <new commit message>. 

ich versucht hat, die --directory Flag verwendet, aber ich habe den gleichen Fehler, nur mit den Verzeichnisnamen geändert . Gibt es einen Weg dies zu tun?

BTW, ich nehme an, jemand wird dies als ein Duplikat von this question kennzeichnen, aber die Situation dort war etwas anders und die dort gegebene Lösung hat mir nicht geholfen. Vielen Dank.

Antwort

1

git am wurde entwickelt, um das ursprüngliche Commit aus dem Patch neu zu erstellen.

neu erstellen das Original (mit der gleichen Hash-ID und allem) verpflichten, die in Ihre Repository vorgenommene Änderung muss auf die Änderung in seine Repository gemacht Bit für Bit identisch sein. Dies würde natürlich erfordern, dass Ihr Repository das gleiche Layout (und Eltern-Commits, die zu diesem Punkt führen) hat wie die im Patch.

Da Ihr Repository eine andere Struktur hat, können Sie git am nicht verwenden, um den Patch anzuwenden. Sie können stattdessen git apply verwenden, aber Sie müssen sich mit den Pfadnamen ein wenig beschäftigen. Beachten Sie, dass Sie wie das Standardprogramm Patch die Option -p number zum Entfernen von Pfadkomponenten verwenden können. Dies hilft jedoch in diesem Fall nicht. In diesem Fall müssen Sie einige Pfadkomponenten hinzufügen, so dass Sie die Option --directory=path möchten.

Verwandte Themen