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í.
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í.
Respuestas:
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)
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:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
Fusiona una de sus ramas en tu rama actual:
git merge <repo-name>/<their-branch>
Si no sabe lo <their-branch>que quiere, busquemaster
Si está seguro de que desea aceptar todos los cambios remotos y evitar conflictos ( sobrescribir los suyos ), puede especificar -X theirscomo opción git mergeen el último paso.
Si desea agregarlo en un subdirectorio, probablemente debería usar los submódulos git
Usando la guía de larsks, pude hacer esto usando SourceTree.
--allow-unrelated-historiesal comando git merge.