Migración de hosts Git

Actualmente estoy evaluando opciones para los services de alojamiento de repositorys de Git para mi equipo. Soy parcial a utilizar GitHub, pero puede haber razones por las que, en su lugar (o además), desearíamos utilizar Stash de Atlassian.

Con Git, ¿es posible copyr un repository y su historial del service de alojamiento a otro? ¿Hay algún problema con hacer esto? Si bajamos a un proveedor y decidimos cambiarnos más tarde, ¿hay algo que perderíamos?

Estoy interesado en la respuesta general sobre esto para Git, pero también hay algún problema probable con los datos (no necesariamente solo el historial de la versión de origen) almacenados como parte de eso que se perdería al tratar de migrar específicamente entre las stacks de GitHub y Atlassian?

Gracias,

== actualización (v2) ==

Solo para hacer un seguimiento, hice esto con éxito desde el clon que tenía de Stash y presioné a Github usando:

git clone --mirror ssh://git@mystashurl.com:8080/Stash/Project.git MyGithubProject cd MyGithubProject git remote set-url origin git@github.com:MyGithubOrg/MyGithubProject.git git push --mirror origin 

Y retuvo toda la historia esperada, incluidas las sucursales.

Joe, según tu comentario, la pregunta no tiene mucho sentido en el context de git. Cualquier clon de su repository contiene el historial completo del repository. Eso escrito, hay tres cosas que necesitarías recrear si cambiaras los services:

  1. Cualquier configuration de git hooks en github. Estos no se almacenan con el repository (para cualquier repository clonado). Sin embargo, no hay ninguna razón por la que no puedas controlar las versiones también, por lo que sería fácil recrearlas en cualquier service. Esta es también una buena práctica. La versión controla todo lo que te importa.

  2. Usuarios autorizados para acceder al repository. Obviamente, cualquier cambio de service significa que sus desarrolladores tendrían que get counts en ese service, get permiso para ver el repository de la compañía, etc.

  3. Repositorios de desarrolladores personales Las bifurcaciones del informe de su empresa obviamente tendrán que recrearse en el nuevo service, pero esta es una operación trivial una vez que haya hecho -2- y haya guardado -1-en mente. Podrías hacerlo tan fácilmente como David describe en su respuesta.

Acabo de probar esto con dos controles remotos diferentes y al agregar el nuevo, eliminar el anterior y presionar, el historial de confirmación no se perdió.