Estoy tratando de mover solo el contenido de un repositorio ( repo1
) a otro repositorio existente ( repo2
) usando los siguientes comandos:
git clone repo1
git clone repo2
cd repo1
git remote rm origin
git remote add repo1
git push
Pero no está funcionando. Revisé una publicación similar, pero solo encontré una que movía la carpeta, no el contenido.
git
merge
repository
migrate
Mario
fuente
fuente
Respuestas:
Creo que los comandos que estás buscando son:
Después de eso
repo2/master
contendrá todo derepo2/master
yrepo1/master
, y también tendrá la historia de ambos.fuente
repo1
una subcarpeta (dentrorepo1
) antes de hacer la fusión.Perfectamente descrito aquí https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Primero, tenemos que buscar todas las ramas y etiquetas remotas del repositorio existente en nuestro índice local:
Podemos verificar cualquier rama faltante que necesitemos para crear una copia local de:
Usemos la URL SSH-clonada de nuestro nuevo repositorio para crear un nuevo control remoto en nuestro repositorio local existente:
Ahora estamos listos para enviar todas las ramas y etiquetas locales al nuevo control remoto llamado new-origin:
Hagamos de nuevo origen el control remoto predeterminado:
Cambie el nombre de nuevo origen a solo origen, para que se convierta en el control remoto predeterminado:
fuente
git checkout BranchName
las sucursales con y luego empujar la rama al repositorio remoto nuevamente,git push --all new-origin
pero muchas graciasSi está buscando preservar las ramas existentes y confirmar el historial, esta es una forma que me funcionó.
Ahora, suponga que desea mantener sincronizados los repositorios de origen y destino durante un período de tiempo. Por ejemplo, todavía hay actividad dentro del repositorio remoto actual que desea llevar al repositorio nuevo / de reemplazo.
Para desplegar las últimas actualizaciones (suponiendo que no tenga cambios locales):
NB: todavía tengo que usar submódulos, así que no sé qué pasos adicionales podrían ser necesarios si los tiene.
fuente
Enfoque más simple si Git ya rastrea el código y luego establece un nuevo repositorio como tu "origen" al que presionar.
fuente
Esto funcionó para mover mi repositorio local (incluido el historial) a mi repositorio remoto github.com. Después de crear el nuevo repositorio vacío en GitHub.com, uso la URL en el paso tres a continuación y funciona muy bien.
Encontré esto en: https://gist.github.com/niksumeiko/8972566
fuente
Utilicé el siguiente método para migrar mi GIT Stash a GitLab manteniendo todas las ramas y el historial de confirmación.
Clonar el antiguo repositorio a local.
Crea un repositorio vacío en GitLab.
fuente
Parece que estás cerca. Suponiendo que no es solo un error tipográfico en su envío, el paso 3 debería ser en
cd repo2
lugar de repo1. Y el paso 6 no debe sergit pull
empujar. Lista reelaborada:fuente
Según la respuesta de @ Dan-Cohn, Mirror-push es tu amigo aquí. Esta es mi opción para migrar repositorios:
Reflejando un repositorio
1.Abra Git Bash.
2.Cree un clon desnudo del repositorio.
3.Mirror-push al nuevo repositorio.
4. Retire el repositorio local temporal que creó en el paso 1.
Referencia y crédito: https://help.github.com/en/articles/duplicating-a-repository
fuente
Aquí hay muchas respuestas complicadas; sin embargo, si no le preocupa la preservación de la rama, todo lo que necesita hacer es restablecer el origen remoto, configurar el flujo ascendente y presionar.
Esto funcionó para preservar todo el historial de confirmaciones para mí.
fuente