Control de Versiones

GIT, remotos

  1. Repositorio remoto
  2. Clonar un repositorio
  3. Protocolo SSH vs HTTPS
  4. Guardar en cache usuario y contraseña
  5. Crear llave ssh
  6. Listar remotos
  7. Agregar remoto
  8. Eliminar un remoto
  9. Renombrar un remoto
  10. Subir cambios a remoto

Repositorio Remoto

Un repositorio remoto no es más que una copia de los archivos, carpetas, fotos, etc. qué se encuentran bajo la supervisión de git, y están respaldados en un sitio externo a nuestra computadora (Internet, o una red local domestica/oficina, etc.).
Esto nos permite poder colaborar en un proyecto con otros usuarios de manera distribuida; cabe destacar que un repositorio remoto se pueden tener permisos de lectura y escritura o solo lectura.

Clonar repositorio

El comando git clone lo utilizaremos para literalmente realizar una copia de seguridad de lo que se encuentra en el servidor remoto. Cualquiera puede copiar un repositorio completo y hospedarlo en su computadora por si ocurre algún imprevisto con el servidor remoto, si se desea contribuir o distribuir un proyecto.
git clone https://github.com/corbmx/taller-git.git

Si quieres guardar en una carpeta a la definida solo agrega al final el nombre del folder que deseas.

Protocolo SSH o HTTPS

HTTPS es recomendado por Github porque es un puerto que está abierto en todos los firewalls de red, por lo tanto, Github tiene acceso universal cuando usa HTTPS.
También hay muy poca configuración involucrada, por lo que usar HTTPS es muy fácil.
Todo lo que necesita es una cuenta de Github y configurar Git con su nombre y dirección de correo electrónico.
Cada vez que clona , busca , tira o empuja a un repositorio remoto de Github usando HTTPS, debe proporcionar su nombre de usuario y contraseña de GitHub.
Esto significa escribirlos en la línea de comando cada vez o agregarlos a su herramienta Github favorita (que con suerte los almacena en caché en un formato cifrado en el espacio de archivos).

Establecer git para usar la memoria caché de credenciales

Es posible almacenar en caché su nombre de usuario y contraseña por un período de tiempo, por lo que solo tiene que ingresarlos de vez en cuando.
git config --global credential.helper cache

Establecer el caché en el tiempo de espera después de 1 hora (la configuración está en segundos).
git config --global credential.helper 'cache --timeout = 3600'
Con SSH crea un par de claves públicas / privadas para cada computadora que va a usar para conectarse a Github.
Copias la clave pública a tu cuenta de Github y cuando empujas un cambio en github se firma con tu clave privada para que Github sepa que eres tú quien la está empujando.
Esto agrega una pequeña configuración, pero nunca tendrá que proporcionar su nombre de usuario y contraseña cuando acceda a los repositorios de Github.
Las claves SSH son más seguras porque no brindan acceso a su cuenta de Github.
Si alguien consigue su clave privada (es decir, se robaron su computadora y la piratearon), entonces podrían hacer cosas desagradables en sus repositorios (por ejemplo, un impulso forzado de un repositorio vacío que borra su historial de cambios).

Generar llaves

ssh-keygen -t rsa -C my-github@email.com

Listar los remotos de un repositorio

git remote
Los remotos utilizan alias o names para la dirección remota de donde efectuamos la clonación.
git remote -v

Agregar remotos

Si tuviésemos otro repositorio del mismo proyecto pero en un servidor de pruebas donde alojamos código que necesitamos ir probando, pudiésemos agregar otra dirección remota y enviarle los cambios sin afectar a "origin".
git remote add servidor-de-pruebas https://github.com/corbmx/pruebas-git.git
Ahora revisa los remotos
git remote -v

Quitar remotos

Si desea eliminar un remoto porque ya no lo usará, basta con ejecutar este comando.
git remote rm <nombre del remoto>

Renombrar remotos

Para hacer mas claro sus remotos, los puede renombrar.
git remote rename <nombre actual> <nuevo nombre>

Subir cambios a remoto

Una vez que hemos conectado el repositorio remoto con el local y tenemos cambios consolidados en nuestra computadora que deseamos compartir, utilizamos el comando git push [remoto] [ramificación]
git push <remoto> <rama>

Obtener cambios de remoto

Utilizando el comando fetch obtenemos los cambios que se encuentren en el servidor remoto que hayan sido realizados por nuestros compañeros y los copiamos a nuestra computadora.
git fetch origin

La bandera --all indica que trae los cambios de todos los remotos de todas las ramas.

De esta manera actualizamos nuestra información local con la información que se encuentre remota. Pero no será reflejada en el git log hasta que la unamos con nuestro árbol de trabajo (ramificación).

Fusionar cambios

Para unir cambios, primero debes confirmar que estas sobre la rama destino que tienes intención de fusionar, luego ejecutar el comando merge.
git merge <rama>

Puedes mergear con ramas remotas usando el nombre del remoto directamente origin/master.

Obtener cambios y fusionarlos

git pull realiza un fetch más un merge. Descarga los cambios que se encuentren en el repositorio remoto y los unifica con los cambios que tengamos en nuestro equipo.
git pull <remoto> <rama>
Ir al siguiente módulo