Ejercicio: Carga del proyecto en GitHub

Completado

Puede importar repositorios a GitHub con el Importador GitHub, la línea de comandos o las herramientas de migración externas.

Acerca de GitHub Importer

Si tiene código fuente en Subversion, Mercurial, Control de versiones de Team Foundation (TFVC) u otro repositorio de Git, puede moverlo a GitHub mediante GitHub Importer. GitHub Importer es una herramienta que importa rápidamente repositorios de código fuente, incluidas las confirmaciones y el historial de revisiones, a GitHub automáticamente.

Durante una importación, en función del sistema de control de versiones desde el que se va a importar, puede realizar algunas de las siguientes tareas. Autentíquese con el repositorio remoto, actualice la atribución de autor de confirmación, importe repositorios con archivos grandes o quite archivos grandes si no desea usar Git Large File Storage.

Acción de importación Subversion Mercurial TFVC Git
Autenticación con un repositorio remoto X X X X
Actualización de la atribución del autor de confirmación X X X
Traslado de archivos grandes a Git Large File Storage X X X
Eliminación de archivos grandes del repositorio X X X

Importación de un repositorio con GitHub Importer

Si tiene un proyecto hospedado en otro sistema de control de versiones, puede importarlo automáticamente a GitHub mediante la herramienta Importador GitHub. La herramienta GitHub Importer no es adecuada para todas las importaciones. Por ejemplo, si el código existente está hospedado en una red privada, nuestra herramienta no puede acceder a él. En estos casos, se recomienda importar mediante la línea de comandos para los repositorios de Git o mediante una herramienta de migración de código fuente externa para los proyectos importados desde otros sistemas de control de versiones.

Si desea hacer coincidir las confirmaciones del repositorio con las cuentas de usuario de GitHub de los autores durante la importación. En primer lugar, asegúrese de que todos los colaboradores del repositorio tengan una cuenta de GitHub antes de comenzar la importación.

Los repositorios y archivos individuales están sujetos a límites de tamaño. Para obtener más información, consulte Acerca de los archivos grandes en GitHub.

Para importar un repositorio, siga estos pasos:

  1. En la esquina superior derecha de cualquier página, seleccione +y, a continuación, seleccione Importar repositorio.

    Captura de pantalla del botón importar repositorio.

  2. En "Your old repository's clone URL" (URL del clon del repositorio antiguo), escriba la URL del proyecto que desee importar.

    Captura de pantalla del cuadro de texto URL del repositorio antiguo.

  3. Elija su cuenta de usuario o una organización como propietaria del repositorio, y luego escriba un nombre para el repositorio en GitHub.

    Captura de pantalla del nuevo nombre del propietario del repositorio de importación.

  4. Especifique si el nuevo repositorio debe ser público o privado. Para obtener más información, consulte Configuración de la visibilidad del repositorio.

    Captura de pantalla de las nuevas opciones públicas o privadas del repositorio.

  5. Revise la información que especificó y, a continuación, seleccione Begin import (Comenzar importación).

    Captura de pantalla del botón Iniciar importación para una nueva importación de repositorio.

  6. Si el proyecto anterior estaba protegido con una contraseña, escriba la información de inicio de sesión de ese proyecto y seleccione Enviar.

    Captura de pantalla de la ubicación para introducir el importador de credenciales del repositorio antiguo.

  7. Si hay varios proyectos hospedados en la dirección URL de clonación del proyecto anterior, elija el proyecto que desea importar y, a continuación, seleccione Enviar.

    Captura de pantalla de una selección de proyectos encontrados en la misma dirección URL. importador de proyectos.

  8. Si el proyecto contiene archivos de más de 100 MB, elija si desea importar los archivos grandes mediante El almacenamiento de archivos grandes de Git y, a continuación, seleccione Continuar.

    Captura de pantalla de los archivos adecuados para el importador de Almacenamiento de archivos grandes de Git.

Cuando el repositorio se importe por completo, recibirá un correo electrónico.

Actualización de la atribución de autor de confirmación con GitHub Importer

Durante una importación, puede hacer coincidir las confirmaciones en el repositorio con la cuenta de GitHub del autor de la confirmación. GitHub Importer busca usuarios de GitHub cuyas direcciones de correo electrónico coincidan con los autores de las confirmaciones en el repositorio que va a importar. Después, puede conectar una confirmación a su autor mediante su dirección de correo electrónico o el nombre de usuario de GitHub del autor.

Actualización de los autores de confirmaciones

Siga estos pasos para actualizar un autor de confirmación:

  1. Después de importar el repositorio, en la página de estado de importación, seleccione Coincidencias con autores.

    Recorte de pantalla del botón para buscar la coincidencia con autores.

  2. Junto al autor cuya información desea actualizar, seleccione Conectar.

    Recorte de pantalla del proceso de creación de confirmaciones de conexión.

  3. Escriba la dirección de correo electrónico o el nombre de usuario de GitHub del autor y presione Entrar.

Asignación de confirmaciones a un usuario de GitHub con una dirección de correo electrónico pública

Si un autor de una confirmación en el repositorio importado tiene una cuenta de GitHub asociada a la dirección de correo electrónico que usó para crear las confirmaciones y no establece su dirección de correo electrónico de confirmación como privada. A continuación, GitHub Importer hace coincidir la dirección de correo electrónico asociada a la confirmación con la dirección de correo electrónico pública asociada a su cuenta de GitHub y atribuye la confirmación a su cuenta de GitHub.

Asignación de confirmaciones a un usuario de GitHub sin una dirección de correo electrónico pública

Si el autor de una confirmación en el repositorio importado no establece una dirección de correo electrónico pública en su perfil de GitHub o establece su dirección de correo electrónico de confirmación como privada. En ese caso, es posible que GitHub Importer no pueda hacer coincidir la dirección de correo electrónico asociada a la confirmación con su cuenta de GitHub.

El autor de la confirmación puede resolver este problema estableciendo su dirección de correo electrónico como privada. Sus confirmaciones se atribuyen a <username>@users.noreply.github.com y las confirmaciones importadas están asociadas a su cuenta de GitHub.

Atribuir confirmaciones mediante una dirección de correo electrónico

Si la dirección de correo electrónico del autor no está asociada a su cuenta de GitHub, puede agregar la dirección a su cuenta después de la importación y las confirmaciones se atribuirán correctamente.

Si el autor no tiene una cuenta de GitHub, GitHub Importer atribuye sus confirmaciones a la dirección de correo electrónico asociada a las confirmaciones.

Importación de un repositorio de GitHub mediante la línea de comando

Si GitHub Importer no es adecuado para sus fines, como si el código existente está hospedado en una red privada, se recomienda importar mediante la línea de comandos.

Antes de empezar, asegúrese de que sabe lo siguiente:

  • El nombre de usuario de GitHub
  • Dirección URL de clonación del repositorio externo, como https://external-host.com/user/repo.git o git://external-host.com/user/repo.git (quizás con user@ delante del nombre de dominio external-host.com)

Para fines de demostración, usamos:

  • Una cuenta externa denominada ext-user
  • Un host de Git externo denominado https://external-host.com
  • Una cuenta de usuario personal de GitHub denominada ghuser
  • Un repositorio en GitHub.com denominado repo.git

Siga estos pasos para importar el repositorio externo:

  1. Crear un repositorio nuevo en GitHub. Importe el repositorio Git externo a este nuevo repositorio.

  2. Realice un clon "sin directorio de trabajo" del repositorio mediante la dirección URL de clonación externa. En la línea de comandos, escriba el siguiente comando. Este comando crea una copia completa de los datos, pero sin un directorio de trabajo para editar archivos, y garantiza una exportación limpia y fresca de todos los datos antiguos.

    $ git clone --bare https://external-host.com/ext-user/repo.git
    #Makes a bare clone of the external repository in a local directory 
    
  3. Suba el repositorio clonado de forma local a GitHub usando la opción "mirror", que asegura que todas las referencias, como ramas y etiquetas, se copien en el repositorio importado.

    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. Quite el repositorio local temporal.

    $ cd ..
    $ rm -rf repo.git 
    

Adición de código hospedado localmente a GitHub

Si ya tiene código fuente o repositorios almacenados localmente en el equipo o en la red privada, puede escribir comandos en un terminal para agregarlos a GitHub. Para ello, escriba comandos de Git directamente o use la CLI de GitHub.

La CLI de GitHub es una herramienta de código abierto para usar GitHub desde la línea de comandos del equipo. La CLI de GitHub puede simplificar el proceso de agregación de un proyecto existente a GitHub mediante la línea de comandos. Para más información sobre la CLI de GitHub, consulte Acerca de la CLI de GitHub.

Adición de un repositorio local a GitHub con la CLI de GitHub

Siga estos pasos para agregar un repositorio local con la CLI de GitHub:

  1. En la línea de comandos, vaya al directorio raíz del proyecto.

  2. Inicialice el directorio local como un repositorio de Git.

    git init -b main
    
  3. Probar y confirmar todos los archivos en su proyecto.

    git add . && git commit -m "initial commit"
    
  4. A fin de crear un repositorio para el proyecto en GitHub, use gh repo create subcommand. Cuando se le solicite, seleccione Insertar un repositorio local existente en GitHub y escriba el nombre deseado para el repositorio. Si desea que el proyecto pertenezca a una organización en lugar de a su cuenta de usuario, especifique el nombre de la organización y el nombre del proyecto con organization-name/project-name.

  5. Siga las indicaciones interactivas. Para agregar el repositorio remoto y enviarlo, confirme con yes (sí) cuando se le solicite agregar el repositorio remoto y enviar las confirmaciones a la rama actual.

  6. Como alternativa, para omitir todas las indicaciones, proporcione la ruta de acceso al repositorio con la marca --source y pase una marca de visibilidad (--public, --private o --internal). Por ejemplo, gh repo create --source=. --public. Especifique un repositorio remoto con la marca --remote. Para insertar las confirmaciones, pase la marca --push. Para más información sobre los posibles argumentos, consulte el manual de la CLI de GitHub.

Adición de un repositorio local a GitHub mediante Git

Siga estos pasos para agregar un repositorio local mediante Git:

  1. Cree un nuevo repositorio en GitHub.com. Para evitar errores, no inicialice el nuevo repositorio con el archivo README, la licencia o gitignore files. Puede agregar estos archivos después de que su proyecto se suba a GitHub.

    Captura de pantalla de la creación del nuevo repositorio.

  2. Abra Git Bash.

  3. Cambie el directorio de trabajo actual al proyecto local.

  4. Inicialice el directorio local como un repositorio de Git.

    $ git init -b main
    
  5. Agregue los archivos en el nuevo repositorio local. Este comando también los almacena provisionalmente para la primera confirmación.

    $ git add .
    # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  6. Confirme los archivos almacenados provisionalmente en el repositorio local.

    $ git commit -m "First commit"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. En la parte superior del repositorio de GitHub.com página Configuración rápida, seleccione el botón Copiar para copiar la dirección URL del repositorio remoto.

    Recorte de pantalla de la configuración rápida de la dirección URL del repositorio remoto

  8. En el indicador de comandos, agregue la dirección URL del repositorio remoto. El repositorio local se inserta en esta ubicación.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. Inserte los cambios en el repositorio local en GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

Herramientas de migración de código fuente

Puede usar herramientas externas para mover los proyectos a GitHub. Se recomienda usar GitHub Importer para importar proyectos desde Subversion, Mercurial, Team Foundation Version Control (TFVC) u otro repositorio de Git. También puede usar estas herramientas externas para convertir el proyecto en Git.

Importación desde Subversion

En un entorno típico de Subversion, varios proyectos se almacenan en un único repositorio raíz. En GitHub, cada uno de estos proyectos generalmente se asigna a un repositorio de Git independiente para una cuenta de usuario o de organización. Se recomienda importar cada parte del repositorio de Subversion en un repositorio de GitHub independiente si:

  • Los colaboradores deben restaurar o confirmar esa parte del proyecto por separado de las demás partes.
  • Quiere que diferentes partes tengan sus propios permisos de acceso.

Se recomiendan estas herramientas para convertir repositorios de Subversion en Git:

Importación desde Mercurial

Recomendamos hg-fast-export para convertir repositorios de Mercurial a Git.

Importación desde TFVC

Se recomienda git-tfs para mover los cambios entre TFVC y Git.

Para obtener más información sobre cómo pasar de TFVC (un sistema de control de versiones centralizado) a Git, consulte Migración a Git desde el control de versiones centralizado.