2012-03-29 8 views
1

Ich habe ein Repository, das ungefähr so ​​aussieht:Git subtree merge Strategie wählt nicht das richtige Verzeichnis

foo/ 
    subrepo/ 
     a_file_in_subrepo 
     another.ext 
    unrelated_file 

subrepo ist ein Repository auf GitHub, und ich habe eine Fernbedienung in meinem Repository, sagen sub, das verfolgt es, aber keine der Dateien werden zusammengeführt.

Was ich möchte ist in sub/master in der subrepo Ordner zusammenführen. Ich weiß, dass a_file_in_subrepo und another.ext sind genau so, wie sie in sub/master sind, aber wenn ich git merge -s subtree sub/master betreibe ich nicht bekommen, was ich will, und stattdessen erhalten:

foo/ 
    subrepo/ 
     a_file_in_subrepo 
     another.ext 
    unrelated_file 
    a_file_in_subrepo 
    another.ext 

Ich bin wirklich verwirrt. Ich weiß, es rät das Verzeichnis automatisch zusammenzuführen, kann ich das überschreiben?

Antwort

2

Verwenden Sie die -Xsubtree=<path> Option zum recursive merge Strategie:

git merge -s recursive -Xsubtree=subrepo sub/master