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 foo
ed bar
entrambi situati nella tua directory corrente:
$ ls
foo bar
Cambia nel foo
repository:
$ cd foo
Aggiungi il bar
repository come remoto e recuperalo:
$ git remote add bar ../bar
$ git remote update
Crea un nuovo ramo baz
nel foo
repository basato su qualunque sia il tuo ramo attuale:
$ git checkout -b baz
Unisci il ramo somebranch
dal bar
repository al ramo corrente:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-histories
non è 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 theirs
come opzione git merge
nell'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-histories
al comando git merge.