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 Importador GitHub

Si tienes código fuente en Subversion, Mercurial, Team Foundation Version Control (TFVC) u otro repositorio de Git, puedes moverlo a GitHub utilizando el Importador de GitHub. Importador GitHub es una herramienta que importa de forma rápida repositorios de código fuente, incluido el historial de revisiones y confirmaciones de cambios, a GitHub para tí.

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
Autenticar con repositorio remoto X X X X
Actualizar la atribución del autor de la confirmación con Importador GitHub X X X
Transferencia de archivos grandes a Large File Storage de Git X X X
Eliminar archivos grandes de tu repositorio X X X

Importar un repositorio con el Importador GitHub

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.

Siga estos pasos para importar un repositorio:

  1. En la esquina superior derecha de cualquier página, seleccione + y, después, Import repository (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 de la 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 nombre del propietario del repositorio importado nuevo.

  4. Especifique si el nuevo repositorio debe ser público (public) o privado (private). Para obtener más información, consulte Configurar la visibilidad de un repositorio.

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

  5. Revise la información que ha especificado y seleccione Begin import (Iniciar importación).

    Captura de pantalla del botón Iniciar importación para importar un repositorio nuevo.

  6. Si su proyecto antiguo estaba protegido con contraseña, escriba la información de inicio de sesión para ese proyecto y seleccione Enviar.

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

  7. Si hay varios proyectos hospedados en la URL de clonación del proyecto anterior, elija el proyecto que quiera importar y luego seleccione Submit (Enviar).

    Captura de pantalla de una selección de proyectos que se encuentran en la misma dirección URL. Importador de proyectos.

  8. Si el proyecto contiene archivos de más de 100 MB, elija si quiere importar los archivos grandes mediante el almacenamiento de archivos grandes de Git y luego seleccione Continue (Continuar).

    Captura de pantalla de los archivos adecuados para el importador Git LFS.

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

Actualizar la atribución del autor de la confirmación con Importador GitHub

Durante una importación, puedes hacer coincidir las confirmaciones de tu repositorio con la cuenta de GitHub del autor de la confirmación. El Importador GitHub busca los usuarios de GitHub cuyas direcciones de correo electrónico coincidan con los autores de las confirmaciones del repositorio que estás importando. Luego puedes conectar una confirmación con su autor utilizando su dirección de correo electrónico o el nombre de usuario de GitHub del autor.

Actualizar autores de la confirmación

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 Hacer coincidir autores.

    Captura de pantalla del botón Match authors (Hacer coincidir autores).

  2. Junto al autor cuya información quiera actualizar, seleccione Connect (Conectar).

    Captura de pantalla del proceso de autor de confirmación de conexión.

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

Atribuir 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.

Atribuir 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 utilizando 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, por ejemplo si el código existente está hospedado en una red privada, se recomienda realizar la importación mediante la línea de comandos.

Antes de comenzar, asegúrate de saber lo siguiente:

  • El nombre de usuario de GitHub
  • La 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 un elemento 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. En la línea de comando, haz un clon "en blanco" del repositorio usando la URL del clon externo. 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. Elimina el repositorio local temporal.

    $ cd ..
    $ rm -rf repo.git 
    

Agregar 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 obtener 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, navega al directorio raíz de tu proyecto.

  2. Inicializar 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 Push an existing local repository to GitHub (Insertar un repositorio local existente a GitHub) e introduzca el nombre que quiera ponerle a su repositorio. Si quiere que su proyecto pertenezca a una organización en lugar de a su cuenta de usuario, especifique el nombre de la organización y del proyecto con organization-name/project-name.

  5. Sigue los mensajes interactivos. 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 solicitudes, 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 remoto con la marca --remote. Para insertar las confirmaciones, pase la marca --push. Para obtener más información acerca de los posibles argumentos, consulte 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. Crear un repositorio nuevo 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 repositorio.

  2. Abra Git Bash.

  3. Cambiar el directorio de trabajo actual en tu proyecto local.

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

    $ git init -b main
    
  5. Agregar los archivos a tu 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 la página Configuración rápida de GitHub.com, seleccione el botón Copiar para copiar la dirección URL del repositorio remoto.

    Captura de pantalla de la copia de la URL del repositorio remoto

  8. En el símbolo del sistema, 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. Envíe los cambios a su repositorio local de 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

Puedes utilizar herramientas externas para mover tus proyectos a GitHub. Se recomienda usar GitHub Importer para importar proyectos desde Subversion, Mercurial, Control de versiones de Team Foundation (TFVC) u otro repositorio de Git. También puedes utilizar estas herramientas externas para convertir tus proyectos a Git.

Importar desde Subversion

En un entorno normal de Subversion, se almacenan varios proyectos 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. Sugerimos importar cada parte de tu repositorio de Subversion a un repositorio de GitHub separado si:

  • Los colaboradores necesitan revisar o confirmar esa parte del proyecto de forma separada desde las otras partes
  • Deseas que distintas partes tengan sus propios permisos de acceso

Recomendamos estas herramientas para convertir repositorio de Subversion a Git:

Importar desde Mercurial

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

Importar 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 Migrar a Git desde el control de versiones centralizado.