Git - AulaLinux/AulaLinux.github.io GitHub Wiki

Esta guía pretende hacer una introducción rápida al servicio de control de versiones git, no es ni mucho menos una guía definitiva ni oficial. El propósito de esta guía es de consulta rápida y no de documentación.

Instalación

  • Linux: sudo apt-get install git
  • Windows & Mac: Git Download

Comandos básicos

Estado

git init Este comando permite iniciar un repositorio en un directorio

git status Nos permite ver el estado de nuestro rama, si hay archivos modificados y qué posibles acciones debemos hacer para que todo vaya bien.

git log Muestra un historial de los cambios hecho en el repositorio, nos dice el nombre y el correo de la persona que hizo cada cambio y un hash por si queremos referirnos a el con comandos de git.

Cambios

git add (opción) Este comando añade los archivos deseados al repositorio, debe concatenarse con alguna opción, por ejemplo:

  • --all|. Añade todo lo que todavía no esté añadido.
  • "nombre_archivo | directorio/" Añade el archivo o el directorio en concreto que queramos
  • "expresión regular" Podemos hacer referencia a los archivo por sus expresiones regulares: *.c, *.java, *.*, etc.

git commit Cuando hayamos hecho los cambios o modificaciones deseadas, confirmamos los cambios con este comando. Generalmente nos pide que incluyamos un comentario sobre el motivo del commit, muy importante si queremos saber qué cambios se han ido haciendo a lo largo del proyecto. Podemos ahorrar escribiendo el commit de las siguientes formas:

  • git commit -m "mensaje" Confirma los cambios que se hayan hecho en los archivo e incluye el mensaje.
  • git commit -am "mensaje" Si además de cambios has introducido nuevos ficheros, con este comando podrás añadirlos directamente y además hacer un commit.

Ramas

git branch Muestra las ramas del repo y marca con un '*' en cual te encuentras

git checkout "nombre_rama" Con este comando saltamos de una rama a otra, en nuestro directorio ahora tendremos la versión más actualizada de la rama objetivo del comando.

git checkout -b "nombre_rama" Crea una rama nueva a partir de la rama donde te encuentras.

git merge Permite "juntar" dos ramas. Si nos situamos en una rama y hacemos merge con otra, el resultado será que en la rama donde nos hemos situado tendremos los cambios efectuados en la rama objetivo. Por ejemplo: git checkout master git merge rama_objetivo Tendremos como resultado los cambios de la rama objetivo en nuestro rama master.

git branch -D Borra definitivamente una rama local.

git push origin :nombre_rama Borra una rama del repositorio en el servidor.

Servidor

git pull Este comando nos permite bajarnos la última versión del servidor (o de la rama a la que hagamos referencia). Generalmente nos bajamos la versión de la rama en la que estemos situados, pero también podemos hacer referencia al origen de la rama: git pull origin "nombre_rama"

git push Es el análogo del comando anterior, solo que este sirve para subir los cambios a la rama deseada del repositorio. Si quieres enviar tu rama maestra (master) a tu servidor origen (origin), ejecutarías esto para enviar tu trabajo al servidor: git push origin master

git clone "clonamos" en el directorio donde estemos situados cuando ejecutamos el comando. El comando debe incluir la referencia al repositorio, normalmente una URL. Por ejemplo:git clone https://github.com/AulaLinux/AulaLinux.github.io.git Clonaría este repositorio en un directorio. Con clonar nos referimos a hacer una copia exacta de lo que hay ahora mismo, esta copia es totalmente funcional con los comandos de git anteriormente comentados.

Consejos y trucos

No trabajes sobre master a no ser que sea estrictamente necesario, piensa en esta rama como un canal directo entre tu versión local del proyecto y la del repositorio. Haz ramas siempre que puedas y cuando creas que todo está como debe estar, cámbiate a master y haz merge de la rama donde estabas.

Pon comentarios útiles. Los comentarios en los commits son tan importantes (o más) que los comentarios del código. Se puede caer en la tentación, sobretodo si se trabaja solo, de poner comentarios tipo "hola", "subiendo cambios", "haciendo cosas", etc. Por lo general, si un cambio es importante, coméntalo de manera breve (los carácteres son limitados). Ten en cuenta que en el commit aparece tu nombre y correo y otro programador enfurecido puede querer que le expliques qué cambios hiciste cuando comentaste "cambiado aquella cosa que hacía aquello otro".

En el directorio donde hayas inicializado el repositorio, puedes añadir un archivo oculto llamado .gitignore. En este archivo se especifican una serie de reglas y expresiones que le dirán a git qué archivos NO debe hacer seguimiento ni subir al repositorio. Eres libre de editar este archivo para que git no haga seguimiento de archivo intermedios de compilación, pdfs, txt, o un archivo en concreto.

##Otros comandos

###Tags

Un tag sirve para poner la versión en la que se encuentra el proyecto (v1.0, v1.0.1, v1.2, etc). Permite ver las diferentes partes del desarrollo del proyecto de una forma fácil y rápida.

  • Crear un tag git tag -a {versión} -m '{descripcion de la versión}'.
    p.ej: git tag -a v1.0 -m 'primera versión'

  • Listar tags git tag, o listar con patrón git tag -l '{expresión regular}'
    p.ej: git tag -l 'v1.*' Lista todas las versiones que empiecen por 'v1.'.

  • Subir un tag git push origin --tags. Sube las etiquetas creadas al repo (no se suben cuando se hace el push normal).

Para ver las etiquetas en el repo de GitHub, seleccionar el botón de las ramas y luego la pestaña de Tags.

Info: Tags en git


Referencias

Por favor, consulta la página oficial de git donde encontrarás una documentación más amplia y profunda sobre git.

Consulta

http://librosweb.es/pro_git/

http://pcottle.github.io/learnGitBranching/

Tutoriales

http://try.github.io/levels/1/challenges/1

https://www.codeschool.com/courses/try-git