Dado repo Foo y repo Bar. Quiero fusionar Bar con Foo, pero solo en una rama separada, llamada baz.
git checkout -b baz <= ponga el repositorio de Bar aquí.
No puede fusionar un repositorio en una rama . Puede fusionar una rama de otro repositorio en una rama de su repositorio local. Suponiendo que tiene dos repositorios, fooy barambos ubicados en su directorio actual:
$ ls
foo bar
Cambie al foorepositorio:
$ cd foo
Agregue el barrepositorio como un control remoto y recójalo:
$ git remote add bar ../bar
$ git remote update
Cree una nueva rama bazen el foorepositorio en función de su rama actual:
$ git checkout -b baz
Fusionar la rama somebranchdel barrepositorio en la rama actual:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-historiesno es necesario antes de la versión 2.9 de git)
--allow-unrelated-historiesal comando git merge.Actualizado con comandos de la "vida real":
Comience desde su directorio de repositorio, asegúrese de que su copia de trabajo esté limpia (no se hayan cambiado, agregado o eliminado archivos).
Haz una nueva rama:
git checkout -b <my-branch>Agrega el control remoto secundario, luego recógelo:
Fusiona una de sus ramas en tu rama actual:
git merge <repo-name>/<their-branch>Si no sabe lo
<their-branch>que quiere, busquemasterSi está seguro de que desea aceptar todos los cambios remotos y evitar conflictos ( sobrescribir los suyos ), puede especificar
-X theirscomo opcióngit mergeen el último paso.Si desea agregarlo en un subdirectorio, probablemente debería usar los submódulos git
fuente
Usando la guía de larsks, pude hacer esto usando SourceTree.
fuente