Wie bekomme ich "git clone --recursive` neu Submodule' Fernbedienungen und Zweige?

Habe ich ein Projekt mit einer Handvoll Submodule. Viele von Ihnen sind geklont aus einem GitHub-fork, auf die ich Hinzugefügt habe, einen Zweig für meine custom mods. Ein typisches setup ist wie so:

Im lokalen Ordner: MyProject1/Frameworks/SomeAmazingRepo/

$ git branch -vva
*my-fork                       123456 [my-fork/my-fork] Latest commit msg from fork
master                         abcdef [origin/master] Latest commit msg from original repo
remotes/my-fork/my-fork        123456 [my-fork/my-fork] Latest commit msg from fork
remotes/my-fork/master         abcdef [origin/master] Latest commit msg from original repo
remotes/origin/HEAD            -> origin/master
remotes/origin/master          abcdef [origin/master] Latest commit msg from original repo

$ git remote -v
my-fork                        [email protected]:MyUser/SomeAmazingRepo.git (fetch)
my-fork                        [email protected]:MyUser/SomeAmazingRepo.git (push)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (fetch)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (push)

Ich git clone --recursive mein Projekt zu beginnen, eine neue spin-off-Projekt, und wenn es beginnt zu recurse, es spuckt eine Fehlermeldung behauptet, es nicht finden können, die gespeichert sind verpflichtet, die für diese repos. Bei der Untersuchung scheint es, dass die Fernbedienungen noch nicht Hinzugefügt wurden und der Zweig Links (leer) im master ...

Im lokalen Ordner: MyProject2/Frameworks/SomeAmazingRepo/

$ git branch -vva
*master                        abcdef [origin/master] Latest commit msg from original repo
remotes/origin/HEAD            -> origin/master
remotes/origin/master          abcdef [origin/master] Latest commit msg from original repo

$ git remote -v
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (fetch)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (push)

Das einzige Heilmittel ist, zu gehen und fügen Sie die Fernbedienung manuell auf alle repos (sehr mühsam).

Gibt es ein ähnliches Problem in den Fällen, in denen gibt es zwei tracking-Zweige wie oben, jedoch nur ein remote (origin => mein github-fork). In diesen Fall, es findet die übergabe-und auscheckt, kann Sie aber nicht erstellen Sie die tracking-Zweig, so dass ein "baumeln" zu Begehen...sehr beängstigend, da es nicht Sie warnen!

Wie kann ich mein Klon-Projekt, so dass es zuverlässig erschafft die Submodule' Fernbedienungen und Zweige?

InformationsquelleAutor der Frage Hari Karam Singh | 2012-05-19

Schreibe einen Kommentar