Control de Versiones
GIT, remotos
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>