Repositorios remotos en Git
Hasta ahora, hemos aprendido cómo trabajar con repositorios locales en Git. Sin embargo, en la mayoría de los casos, también necesitaremos trabajar con repositorios remotos, ya sea para colaborar con otros desarrolladores, hacer copias de seguridad de nuestro código o desplegar nuestras aplicaciones en servidores remotos.
A menudo en lugar de crear un repositorio local, clonaremos un repositorio remoto existente. Esto nos permitirá obtener una copia del código y la historia de un proyecto en nuestro entorno local. Para clonar un repositorio remoto, utilizamos el comando git clone
seguido de la URL del repositorio:
git clone <URL_del_repositorio>
NOTA: Si el repositorio remoto requiere autenticación, Git nos pedirá las credenciales para poder clonarlo.
Una vez clonado el repositorio, podemos trabajar con él de la misma manera que lo haríamos con un repositorio local. Podemos añadir, eliminar, modificar archivos, crear ramas, realizar commits, fusionar ramas, etc.
Para ver la lista de repositorios remotos asociados con nuestro repositorio local, podemos utilizar el comando git remote
:
git remote
Si necesitamos añadir un nuevo repositorio remoto, podemos utilizar el comando git remote add
seguido del nombre del repositorio y de la URL del repositorio:
git remote add <nombre_del_repositorio> <URL_del_repositorio>
Cuando trabajamos con repositorios remotos, es importante tener en cuenta que los cambios que realizamos en nuestro repositorio local no se reflejan automáticamente en el repositorio remoto. Para enviar los cambios al repositorio remoto, utilizamos el comando git push
seguido del nombre del repositorio remoto y de la rama que queremos enviar:
git push <nombre_del_repositorio> <nombre_de_la_rama>
NOTA: Si no se especifica el nombre de la rama, Git intentará enviar la rama actual al repositorio remoto.
NOTA: Si no se especifica el nombre del repositorio, Git intentará enviar los cambios al repositorio remoto por defecto.
NOTA: Si es la primera vez que enviamos una rama al repositorio remoto, podemos utilizar el comando
git push -u
para establecer una relación entre la rama local y la rama remota.
Para obtener los cambios del repositorio remoto y fusionarlos con nuestro repositorio local, utilizamos el comando git pull
seguido del nombre del repositorio remoto y de la rama que queremos fusionar:
git pull <nombre_del_repositorio> <nombre_de_la_rama>
NOTA: Si no se especifica el nombre de la rama, Git intentará fusionar la rama remota con la rama actual.
NOTA: Si no se especifica el nombre del repositorio, Git intentará fusionar los cambios del repositorio remoto por defecto con nuestro repositorio local.
NOTA: Si queremos fusionar los cambios de todas las ramas del repositorio remoto con nuestro repositorio local, podemos utilizar el comando
git pull --all
.
En caso de querer obtener los cambios del repositorio remoto sin fusionarlos con nuestro repositorio local, podemos utilizar el comando git fetch
seguido del nombre del repositorio remoto:
git fetch <nombre_del_repositorio>
NOTA:
git fetch
descarga los cambios del repositorio remoto a nuestro repositorio local, pero no los fusiona automáticamente. Para fusionar los cambios, podemos utilizar el comandogit merge
.