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óngit 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://pcottle.github.io/learnGitBranching/