Ejercicio: Carga del proyecto en GitHub
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:
En la esquina superior derecha de cualquier página, seleccione +y, a continuación, seleccione Importar repositorio.
En "Your old repository's clone URL" (URL del clon del repositorio antiguo), escriba la URL del proyecto que desee importar.
Elija su cuenta de usuario o una organización como propietaria del repositorio, y luego escriba un nombre para el repositorio en GitHub.
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.
Revise la información que especificó y, a continuación, seleccione Begin import (Comenzar importación).
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.
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.
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.
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:
Después de importar el repositorio, en la página de estado de importación, seleccione Coincidencias con autores.
Junto al autor cuya información desea actualizar, seleccione Conectar.
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.gitogit://external-host.com/user/repo.git(quizás conuser@delante del nombre de dominioexternal-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:
Crear un repositorio nuevo en GitHub. Importe el repositorio Git externo a este nuevo repositorio.
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 directorySuba 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.comQuite 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:
En la línea de comandos, vaya al directorio raíz del proyecto.
Inicialice el directorio local como un repositorio de Git.
git init -b mainProbar y confirmar todos los archivos en su proyecto.
git add . && git commit -m "initial commit"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 conorganization-name/project-name.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.
Como alternativa, para omitir todas las indicaciones, proporcione la ruta de acceso al repositorio con la marca
--sourcey pase una marca de visibilidad (--public,--privateo--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:
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.
Abra Git Bash.
Cambie el directorio de trabajo actual al proyecto local.
Inicialice el directorio local como un repositorio de Git.
$ git init -b mainAgregue 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'.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.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.
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 URLInserte 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.