Repositorios Remotos: GitHub
Contenido:
- Sobre GitHub
- Áreas de git
- Sincronizar un repositorio local en un repositorio remoto
- Git para repositorios remotos
- Clonar repositorios
- Fork a repositorios remotos
- Sub-módulos
Servicios de GitHub
- Plataforma de control de versiones
- Ecosistema Open Source
- Administración de tableros
- Proyectos públicos
- Código y edición manual
- Sintaxis markdown
- Inspección de elementos de git: commits, branches, releases y contributors.
- Issues
- Pull requests
- Actions
- Proyectos/Tableros
- Wiki
- Insights
- GitHub Pages
Áreas de git
Sincronizar un repositorio local en un repositorio remoto
Crear un nuevo repositorio en GitHubAl crearlo nos dará las siguientes opciones:
GitHub nos ofrece las opciones siguientes:
- or create a new repository on the command line
- or push an existing repository from the command line
- or import code from another repository
Por ahora solo necesitamos incluir la URL del repositorio remoto creado anteriormente en nuestro proyecto local
- URL por SSH: necesitaremos generar y dar de alta nuestra llave SSH en GitHub para poder usar esta opción
- URL por HTTPS: nos pedirá una confirmación de usuario y contraseña de GitHub cada vez que efectuemos alguna operación.
SSH
Guía para dar de alta llave ssh
Crear la llave si no existe, y dar de alta en Settings / New SSH Key
Agregar la URL del repositorio remoto
- Copiar la URL por SSH o HTTPS (se recomienda SSH)
- En el proyecto local se necesita dar de alta
$ git remote add origin <url-del-repositorio-remoto>
Este comando consta de 2 directivas: origin y la url del repositorio remoto.
Origin será el tag con el que identificaremos la url, y es un parámetro obligatorio. Esto quiere decir que es posible agregar múltiples urls de diferentes repositorios remotos en diferentes plataformas.
- Comprobar la url
$ git remote -v
origin [email protected]:carlogilmar/prueba.git (fetch)
origin [email protected]:carlogilmar/prueba.git (push)
Git para repositorios remotos
git push
Para enviar los cambios realizados en el repositorio local al repositorio remoto bastará con realizar un PUSH
$ git push origin master
Los dos parámetros necesarios son:
- tag de la url del repositorio remoto (normalmente se identifica como origin)
- nombre del branch que se enviará (en este ejemplo es master)
git pull
En el caso de que el repositorio remoto sea actualizado entonces existirá la necesidad de actualizar nuestro repositorio local con los nuevos cambios, para ellos usaremos el siguiente comando:
$ git pull origin master
Ambos comandos, tanto push como pull actualizan el repositorio remoto o local por branch.
git fetch
El repositorio remoto tendrá noción de que pueden existir algunos tags o branches en el repositorio remoto, sin embargo puede existir el caso de que estos existan ahí y el repositorio local no tenga noción de ellos, para ello es necesario actualizar la información del repositorio remoto en el repositorio local, para ello usamos este comando:
$ git fetch
remote: Counting objects: 637, done.
remote: Compressing objects: 100% (251/251), done.
remote: Total 637 (delta 241), reused 503 (delta 186)
Recibiendo objetos: 100% (637/637), 59.61 KiB | 504.00 KiB/s, listo.
Resolviendo deltas: 100% (241/241), completado con 29 objetos locales.
Desde bitbucket.org:ebcdesarrollo/broker-oracle
+ 70d6211...a5cdc5a QA -> origin/QA (actualización forzada)
+ 7d1ebe5...296ca70 PROD -> origin/PROD (actualización forzada)
* [nueva rama] feature/BO-133 -> origin/feature/BO-133
* [nueva rama] feature/BO-134 -> origin/feature/BO-134
ea37041..7e4e3c1 master -> origin/master
Clonar repositorios
Hasta este punto hemos visto cómo sincronizar un proyecto local versionado con git a uno remoto, pero también podemos descargar un proyecto remoto para comenzar a operarlo, para ello usaremos la URL del repositorio remoto, recordando las diferencias entre hacerlo por HTTPS o SSH.
$ git clone <url-del-repositorio-remoto>
Esto descargará automáticamente el repositorio.
Fork
Al ver un proyecto público en GitHub ajeno a nuestro perfil, podemos ver las siguientes opciones:El realizar un FORK de un proyecto significa crear una copia exacta en nuestro perfil:
Submódulos
Un repositorio de git puede tener referencias a otros repositorios, esto es común cuando se necesita enlazar a varios proyectos en uno solo.
Dentro de nuestro proyecto bastará con hacer lo siguiente:
$ git submodule add <url-del-repositorio-remoto> <nombre-de-la-carpeta-en-que-se-descargará>
Esta referencia se guardará en el archivo .gitmodules el cual deberá estar bajo el control de versiones. Se pueden agregar los repositorios remotos que se deseen como sub-módulos.
Al subir los cambios al repositorio remoto aparecerá la carpeta como link al repositorio remoto que corresponde al submódulo: