Dato repo Foo e repo Bar. Voglio unire Bar con Foo, ma solo in un ramo separato, chiamato baz.
git checkout -b baz <= metti qui il repository Bar.
Dato repo Foo e repo Bar. Voglio unire Bar con Foo, ma solo in un ramo separato, chiamato baz.
git checkout -b baz <= metti qui il repository Bar.
Risposte:
Non puoi unire un repository in un ramo . Puoi unire un ramo da un altro repository a un ramo nel tuo repository locale. Supponendo che tu abbia due repository fooed barentrambi situati nella tua directory corrente:
$ ls
foo bar
Cambia nel foorepository:
$ cd foo
Aggiungi il barrepository come remoto e recuperalo:
$ git remote add bar ../bar
$ git remote update
Crea un nuovo ramo baznel foorepository basato su qualunque sia il tuo ramo attuale:
$ git checkout -b baz
Unisci il ramo somebranchdal barrepository al ramo corrente:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-historiesnon è richiesto prima della versione 2.9 di git)
Aggiornato con comandi "reali":
Inizia dalla directory del repository, assicurati che la tua copia di lavoro sia pulita (nessun file modificato, aggiunto o rimosso).
Crea un nuovo ramo:
git checkout -b <my-branch>
Aggiungi il telecomando secondario, quindi recuperalo:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
Unisci uno dei loro rami nel tuo ramo attuale:
git merge <repo-name>/<their-branch>
Se non sai quale <their-branch>vuoi, allora vaimaster
Se sei sicuro di voler accettare tutte le modifiche remote ed evitare conflitti ( sovrascrivi le tue ), puoi specificare -X theirscome opzione git mergenell'ultimo passaggio.
Se vuoi aggiungerlo in una sottodirectory, probabilmente dovresti usare i sottomoduli git
Usando la guida di larsks, sono stato in grado di farlo usando SourceTree.
--allow-unrelated-historiesal comando git merge.