Cómo migrar un proyecto existente a GitHub

Completado

Aquí se habla de consideraciones importantes para migrar un proyecto a GitHub desde un sistema de control de versiones heredado.

Por qué migrar a GitHub

Hay volúmenes de literatura ensalzando las virtudes de GitHub. Está fuera del ámbito de este módulo convencerle de que haga el cambio. Sin embargo, podemos resumir algunas de las principales ventajas en el contexto de los temas que debe tener en cuenta al planear la migración.

Control de versiones

GitHub usa exclusivamente Git, posiblemente el mejor sistema de control de versiones. Sin embargo, Git es increíblemente sofisticado y puede presentar algunos escenarios complejos para trabajar con código; es posible que su equipo no esté familiarizado con dichos escenarios. Las ramas y las solicitudes de incorporación de cambios son una parte fundamental de la vida diaria de los desarrolladores que usan Git, por lo que entenderlas y saber cuándo y cómo usarlas de forma eficaz es necesario para el éxito en GitHub. Merece la pena que el equipo esté familiarizado con el flujo de GitHub para que pueda trabajar de inmediato.

Mantenimiento del código en la nube

Una gran cantidad de código de proyectos todavía se almacena en sistemas de control de versiones heredados detrás de firewalls corporativos. Al migrar a GitHub, estás migrando el código a la plataforma en la nube de GitHub, donde los miembros del equipo pueden acceder fácilmente desde cualquier lugar. Esta migración ofrece una buena oportunidad de revisar la directiva del equipo sobre los tipos de archivos y datos que se mantienen en el control de versiones. Como procedimiento recomendado, debe suponer que todo lo que confirme en GitHub está comprometido. Asegúrese de no incluir datos confidenciales, como claves de API, contraseñas u otros archivos que contengan información comparable.

Nota:

GitHub ofrece repositorios públicos y privados, así como controles de acceso pormenorizados para diferentes partes de un repositorio. Esto te permite controlar para quién son visibles los proyectos, así como qué acciones puede realizar un determinado usuario.

Colaboración

GitHub ofrece una excelente compatibilidad con la colaboración en equipo por medio de características como problemas, solicitudes de incorporación de cambios y revisiones de código. No obstante, el flujo de GitHub puede diferir de los procedimientos a los que el equipo está acostumbrado actualmente. Es buena idea pensar si el equipo se va a adaptar a GitHub, va a conservar su proceso dado o va a adoptar un enfoque intermedio antes de completar la migración.

Si el proyecto es uno de código abierto que permite colaboradores externos, no hay mejor opción que GitHub para maximizar las ventajas.

Migración a GitHub

Consideraciones de planeamiento

La consideración más importante antes de ejecutar la migración a GitHub es si necesitas conservar algo más que el estado actual de tu origen. Si está satisfecho con iniciar un nuevo proyecto con el origen actual tal cual, la mejor opción es tratarlo como un nuevo proyecto y cargar el origen en el repositorio.

Pero si quiere conservar el historial del control de versiones, tendrá que importarlo mediante la herramienta GitHub Migrator. Para obtener más información sobre la compatibilidad de la importación con diferentes plataformas de control de versiones, consulte Importación de datos desde sistemas de control de versiones de terceros.

Además de datos de Git, es posible que también quiera conservar problemas, solicitudes de incorporación de cambios u otros datos. La compatibilidad con estos elementos varía según la plataforma y está disponible con carácter general en los proyectos de la comunidad. Este módulo no aborda la migración de datos que no son de Git.

Control de archivos binarios almacenados en el proyecto

Como procedimiento recomendado, los repositorios de GitHub deben limitarse a los archivos necesarios para compilar proyectos. Evita confirmar archivos binarios de gran tamaño, como artefactos de compilación. Archivos binarios como las hojas de cálculo y las presentaciones son más adecuados para seguimiento en portales que entienden cómo servirlos y controlar su versión correctamente. Si necesita controlar la versión de archivos binarios de gran tamaño, considere la posibilidad de usar la extensión de Git Git LFS (Large File Storage).

Creación de archivos de Git importantes, como .gitignore

Git admite archivos .gitignore para ayudar a aplicar las directivas de control de versiones de archivos. Estos archivos definen los patrones de búsqueda utilizados para excluir archivos y carpetas del seguimiento del control de código fuente. En el ejemplo siguiente, se excluye recurrentemente cualquier carpeta denominada Bin o bin, y su contenido, proveniente del seguimiento del control de código fuente:

[Bb]in/

Puede obtener más información sobre cómo ignorar archivos. También puede consultar la colección de archivos de inicio .gitignore, que se ofrece para varias plataformas en el repositorio de gitignore.

Hay muchos otros archivos que se suelen usar en los proyectos de GitHub para explicar las distintas directivas a los consumidores y colaboradores del repositorio. Aunque el proyecto sea privado y esté restringido a un público limitado, aún puede ser útil articular estas directivas de forma explícita. Aunque no se requiere ninguno de estos archivos, hemos enumerado algunos de los más comunes aquí.

Archivo Propósito
README.md Página de aterrizaje del directorio. Esta página se presenta cuando su directorio se ve en GitHub.
LICENSE.md Licencia bajo la que se proporciona el código.
CONTRIBUTING.md Explica cómo deben contribuir los usuarios al proyecto, por ejemplo, las expectativas de las solicitudes de incorporación de cambios.
SECURITY.md Explica la directiva de seguridad del proyecto. Proporciona instrucciones a los usuarios que desean enviar código o comentarios confidenciales relacionados con la seguridad que no deben revelarse públicamente antes de abordarse.

Más información para Configurar tu proyecto para contribuciones saludables.

Importación del proyecto en GitHub

Una vez que haya preparado su repositorio para la migración, vaya a la pestaña Código de su repositorio de GitHub. Use la opción Importar código para especificar el repositorio de origen.

Captura de pantalla de la importación de código a un repositorio de GitHub.

La herramienta GitHub Migrator se encarga del resto.

Captura de pantalla de la herramienta GitHub Migrator.