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
Debemos preguntarnos a nosotros mismos si estamos importanto un proyecto existente o vamos a crear uno.
git clone [url]
git init
git init
git add .
git commit -m 'First commit'
git remote add origin https://github.com/user/project.git
git push origin master
git add
StagLa 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
Obtén toda la información de la rama actual.
git status
Por defecto Git te mostrará cualquier cambio que no haya sido comiteado.
git diff
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 funcionaUna 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 uniendoGit 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íaCombina 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 errorCuando 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.