Aprende GIT y empieza a trabajar en grupo

Git es una herramienta para hacer control de versiones de Linus Torvalds (si, el mismo que linux) en su origen para controlar la propia evolución del kernel linux. A día de hoy es uno de los SCM (Source code manager) más populares aunque no precisamente por su facilidad de uso.

En este tutorial veremos como usar un repositorio básico remoto. Damos por supuesto que ya sabes manejarte con facilidad en sistemas gnu/linux y eres ya un usuario experimentado de consola (terminal).

Lo primero es que todos los que vayan a usar el repositorio deberían tener una cuenta en la plataforma remota que se vaya a usar, también podéis montar vuestra propia plataforma aunque si podéis hacer eso no se que estáis haciendo aquí ;). Nosotros recomendamos GitLab que es la plataforma que usamos en JKA Network (sin contar los espejos). 

Si ya tenéis la cuenta abierta lo siguiente es instalar git en vuestro sistema, tan fácil como pacman -S git en Archlinux o apt-get install git en Debian/Ubuntu. Luego de esto ejecutamos los dos siguientes comandos: git config –global user.name "Tu nombre"; git config –global user.mail "[email protected]Si queréis tener otro nombre o correo en un repositorio especifico en la carpeta del repositorio ejecutad lo mismo pero sin el –global 

Tras esto podemos hacer dos cosas, una hacer una cuenta para cada usuario y luego dar permisos de escritura en el repositorio en concreto a todos esos usuarios o usar validacion por ssh con claves RSA. Nuestra recomedación es la segunda opción porque aunque no impide que cada usuario tenga su propia cuenta permite subir modificaciones sin logearse. En el caso de la primera opción basta con hacer git clone https://url.del.repositorio.git pero para el segundo caso hay que hacer lo siguiente

  • Instalar ssh en tu distro
  • generar una clave mediante el comando ssh-keygen , luego dais el nombre al archivo (ejemplo "clave") y os generará dos archivos en la carpeta .ssh de vuestro directorio home, una llamada clave.pub y otra clave, la .pub es vuestra clave pública y la otra es la privada. Luego tenéis que hacer un archivo llamado config dentro de la carpeta .ssh y tiene que tener la siguiente forma: 
    Host url.sin_http_del_host.com
      IdentityFile ~/.ssh/archivo_sin_pub
      User el_usuario

    Tras esto cada vez que clonemos un repositorio tenemos que hacerlo desde la url ssh no la https. La primera vez nos pedirá aceptar la clave

  • Antes de terminar debes incluir la clave publica en la plataforma que uséis. 
  • Es importante que el archivo lo compartan todos los usuario de repositorio o que cada usuario tenga el suyo y todas las claves publicas estén en la plataforma. 
  • Los archivos con las claves privadas deben tener permisos 600 o ssh no ejecutará

Si ya habéis terminado de configurar la plataforma lo siguiente es ya crear el repositorio y empezar a trabajar.

Lo primero es crear el repositorio en la plataforma y luego que cada usuario lo clone en su pc. Tras esto hay dos comandos que debéis conocer a la perfeción, son git pull  git push. El primero debes ejecutarlo siempre antes de hacer ninguna modificacio no vaya a ser que otro usuario haya hecho cualquier cosa que te impida luego fusionarlo todo. El segundo lo que hace es subir todas las modificaciones confirmadas. A nivel básico sin usar ramas lo que os digo ahora no es relevante pero si no es importante recordar que git push actua sobre la rama que estéis por lo que si incluís ramas debéis especificarlo con git push origin nombre_de_rama.

Para mover algo de sitio no basta con hacer mv, hay que hacer git mv o no se efectuará en la rama ese cambio, si borrais lo mismo, hay que usar git rm. Para añadir algo es con git add. Si usáis git add -A todos los mv, rm … se añaden también. Estos tres últimos comandos siempre especificando el archivo (acepta expresiones regulares como *,{},[]…). Para confirmarlo todo usad git commit -m "Descripcion breve de lo que habéis hecho"  y luego ya usáis el git push origin rama.

Para ver las ramas se usa git branch -a, para hacer rama local a partir de una remota con git cheackout -t origin/nombre_de_la_rama, para saltar de rama en rama con git cheackout nombre_de_rama. Para fusionar usar git merge rama esto fusiona en la rama donde estoy la ramificación correspondiente. Para todo el sistema de ramas es preferible que uséis la interfaz de la plataforma que uséis ya que suelen funcionar bien y os ahorrarán varios quebraderos de cabeza.

–Añadido–

Si no queréis que algunos archivos sean añadidos por git basta con hacer un archivo en la carpeta raiz del repo con nombre .gitignore. En él poned lo que no queréis que se añada, puede ser una extensión (Ej: *.html), un nombre (Ej: contraseñas), carpetas (Ej: mis_archivos/) o cualquier cosa pesonalizada (Ej *.c.~*~). Os dejo un ejemplo:

.bak*/
*.c.~*~
*.html
*.exe

–Fin de Añadido–

 

Esto es todo a nivel básico cómo usar git, si tenéis alguna duda no olvidéis dejarla en los comentarios, si os a gustado dad like al post. Si queréis estar atentos a nuestos artículos no olvidéis seguirnos en Twitter. Como siempre, un saludo y muchas gracias por leernos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *