Ich musste etwas ähnliches tun, aber ich wollte im Wesentlichen ein Unterprojekt von einem Repo zu einem anderen verschieben. Stattdessen habe ich fetch verwendet, da es Objekte aus jeder Quelle abrufen kann.
Also, im Grunde, ich habe einen neuen Zweig erstellt, löschte die nicht benötigten Sachen in diesem Zweig, dann verwendet git fetch den Zweig von einem Repo zu einem anderen zu ziehen. Sobald ich die Objekte hatte, machte Merge den Trick.
z.
Auf dem Repository, das das ursprüngliche Material hat:
git checkout -b temp master
git rm -r Unneeded_stuff
git commit -m 'pruning'
Dann können Sie diesen Zweig von einem Repository in ein ganz anderes (nicht verwandten) holen:
cd /path/to/other/repository
git fetch /path/to/source/repo temp:temp
wo Temp: temp Mittel "hole die Temperatur von der Quelle und speichere sie als Temperatur hier". Von dort können Sie das Ergebnis in Ihren Master zusammenführen.
git merge temp
Sie können dann die Temp Zweige löschen, da im ersten Fall ist es nicht etwas, das Sie jemals mit dem ursprünglichen Repo zusammenführen möchten, und im zweiten Fall haben Sie es verschmolzen.
Ich bin sicher, dass diese Schritte ein wenig komprimiert werden könnten, aber dieses Set scheint nett und klar.
Beachten Sie, dass dies ein Duplikat von http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository ist (wie Jim DeLaHunt in seiner Antwort sagt). –