Uso básico de Git

Git se ha convertido en el principal sistema de control de versiones para nuestro código. Esto significa que un buen entendimiento de la herramienta es fundamental para mantener, contribuir o desarrollar cualquier tipo de software hoy en día.

git config Configuración inicial

¿Es esta la primera vez que usas Git? Si es así, deberías empezar configurando tu email y nombre, el cuál será utilizado por defecto en todos tus proyectos.

git config --global user.name "Your Name"
git config --global user.email you@yourdomain.com

Empecemos

Debemos preguntarnos a nosotros mismos si estamos importanto un proyecto existente o vamos a crear uno.

Git Clone
git clone [url]
Git Init
git init
GitHub
git init
git add .
git commit -m 'First commit'
git remote add origin https://github.com/user/project
git push origin master

git add Stag

La zona de "stages" o git add tiene la función de guardar los cambios pendientes en el área de trabajo. Una vez que estés seguro de los cambios, haces un commit al historial del proyecto.

git add [file]    # Añade un único fichero o directorio
git add .         # Todos los archivos y carpetas
git add -p        # Modo interactivo
Estado

Obtén toda la información de la rama actual.

git status
Diferencias

Por defecto Git te mostrará cualquier cambio que no haya sido comiteado.

git diff
Revertir

Recupera archivos del index actual eliminándolos del área de stages a su último estado en los commits.

git reset [file] [*.txt] [/dir]
git reset -p    # Interactive mode

O simplemente haz un checkout al fichero.

git checkout -- file.txt

git commit Vale, parece que todo funciona

Una vez que hemos guardado una captura del proyecto o stage, el comando git commit entra en acción para registrar el estado actual en el repositorio o histórico de cambios.

git commit -m 'First commit'

O puedes añadir los cambios al último commit:

git commit --ammend

git merge Ramificando y uniendo

Git merge combina múltiples commits en un solo histórico unificado. En la mayoría de casos, se utiliza para combinar dos ramas. Siempre deberíamos seguir el patrón merge-commit para mantener un punto inicial y final en el histórico de cambios.

git checkout -b newfeature
git add .
git commit -m 'Added new feature'
git checkout master
git merge newfeature -m 'Merged newfeature into master'
git push master

git pull Para estar al día

Combina los cambios remotos que están por encima de tu rama actual con git pull. Este comando es una combinación de otros dos, git fetch seguido de git merge. En la primera fase Git recuperará los últimos cambios donde está apuntando HEAD. Una vez que el nuevo contenido es descargado, git pull realiza una fusión del área de trabajo.

git pull

Algunas veces nos encontramos con desincronización en una rama de la que dependemos. Esto puede ser un gran problema causando conflictos si estamos por debajo de la línea de trabajo. Podemos solucionarlo rebasando nuestra rama:

git pull --rebase

git reset Ouch! Cometí un error

Cuando queremos restaurar una rama al último commit:

git reset --hard HEAD~1

Puedes deshacer un número n de commits con HEAD~n. ¡Cuidado! Borarrá los cambios locales en tu máquina.

Leer más