Nomenclatura
Ejemplo: git commit -m "feat: Add Google OAuth login functionality"
Ejemplo: git commit -m "feat: Add Laravel Fortify package"
Prefijos:
● "feat" para nuevas características o funcionalidades. (Deriva de feature)
● "fix" para correcciones de errores.
● "docs" para cambios en la documentación.
● "refactor" para cambios en el código que no afectan el comportamiento externo.
● "test" para cambios en los casos de prueba.
● "style" para cambios en el formato o estilo del código.
● "chore" para otros cambios no relacionados con el código, como actualizaciones de
dependencias o ajustes en la configuración.
● “change” este prefijo se utiliza para cualquier cambio que no encaje en las otras
categorías, incluyendo la modificación de rutas.
Verbo en tiempo presente:
● "add" para agregar una nueva funcionalidad.
● "fix" para corregir un error.
● "remove" para eliminar una funcionalidad o archivo.
● "refactor" para reorganizar el código.
● "update" para actualizar una biblioteca o dependencia.
Comandos
Configuración
Ver configuración actual: git config —list
Configurar nombre: git config —global [Link] “Nombre Apellido”
Configurar email: git config —global [Link] “correo@[Link]” //Este comando
también es usado para cambiar el correo
COMANDOS BÁSICOS
rm -r nombre_carpeta //borra el directorio y su contenido
git commit -am “Mensaje del commit” //Add + commit, no utilizar en el primer commit.
git reflog //Muestra un historial más completo
git branch -a //Muestra las ramas locales y remotas
Muestra la historia de forma visual: gitk
Crear Alias: alias nombre_alias=”comando para guardar en alias”
Ver commits en forma gráfica: git log --all --graph --decorate --oneline
Listar: ls Listar todo: ls -al
Salir de commits largos: q
Permite ver la rama actual y los cambios: git status
Realiza el add y commit: git commit -am “Mensaje del commit”
Remover archivo de staging area: git rm --cached [Link]
Ver diferencias entre commits: git dif tag_commit1 tag_commit2
git cherry-pick hash_del_commit //Permite integrar el commit de otra rama a nuestro Head
de trabajo actual.
git commit - -amend -m “Nuevo nombre” //Agrega cambios al último commit
git clean -fd //Comando para limpiar archivos no trackeados
VOLVER ATRÁS EN EL TIEMPO
git reset tag_del_commit --hard //Vuelve al commit seleccionado pero BORRA TODOS LOS
COMMITS HECHOS DESPUES DEL COMMIT AL QUE SE QUIERE VOLVER, no conserva los
cambios del staging area. Trae el código del commit a tu editor.
git reset tag_del_commit --soft //Vuelve al commit seleccionado, borra todos los commits
hechos después del commit al que se quiere volver pero conserva los cambios del staging area.
No trae el código del commit a tu editor, conserva tu código actual.
git checkout tag_del_commit //Permite ver el commit seleccionado pero no en la rama
master.
● Permite “Chequear”(Ver en tu editor el commit seleccionado).
● Para hacer un commit volver a master con git checkout master.
● Cuando haces un checkout “Cambias de rama”.
git checkout master //Volver al último commit de master.
RAMAS
SIEMPRE HACER UN COMMIT ANTES DE CAMBIAR DE RAMA
git branch nombre_rama //Crea una nueva rama
git branch -D nombre_rama //Borra la rama
git checkout nombre_rama //Cambia entre ramas
MERGE
● Para hacer un merge colocarse en la rama donde se quiere tener la fusión.
● Un merge es un nuevo commit.
REPOSITORIOS REMOTOS
git remote add origin url //Añadir un origen de datos remoto
git remote remove nombre_origen //Elimina un origen remoto
git remote -v //Ver orígenes de datos
git pull origin master -- allow-unrelated-histories //fatal: refusing to merge unrelated histories
LLAVES PÚBLICAS Y PRIVADAS
Windows
● Las llaves públicas y privadas que creemos estarán en la carpeta .ssh
● Agregar llave publica en github.
● Cambiar url de origen remoto por url ssh //git remote set-url origin ssh_url
ssh-keygen -t rsa -b 4096 -C “tucorreo@[Link]” //Generar lleve pública y privada. La C
debe ser mayúscula.
eval $(ssh-agent -s) //Revisar que el servidor de ssh esté prendido.
ssh-add id_rsa //Agregar al entorno la llave privada que creamos.
TAGS
git tag -a nombre_del_tag -m “Mensaje” hash_del_commit //Añadir un tag
git tag -d nombre_del_tag //Borrar un tag
git push origin - -tags //Mandar tag a repo remoto
git push origin :refs/tags/nombre_del_tag //Borrar tag de repo remoto
.gitignore
carpeta/ //Ignora todo el contenido de la carpeta
*.archivo //Ignora todos los archivos de extensión .archivo
carpeta/*.archivo //Combinación para ignorar los archivos de una carpeta especifica
REBASE
● Sirve para rebasar los commits de una rama con los commits de la rama en la que
estamos (Se resuelven los conflictos y se crea un nuevo commit que reemplaza a los
commits de la rama en la que estamos).
● Solo utilizar en local. No utilizar si ya está en remoto.
● Solucionar los conflictos (Se crea un nuevo commit).
● Primero hacer rebase en la rama que quiero desaparecer y después en la otra rama.
git rebase nombre_rama
git rebase - -abort //Abortar el rebase
git rebase - -continue //Continuar con el siguiente commit a rebasar
STASH
● Se utiliza para guardar cambios temporalmente sin hacer commit.
git stash //Guarda los cambios y vuelve a la versión sin cambios.
git stash branch nombre_rama //Crea una nueva rama y lleva el stash ahí.
git stash pop //Tira lo que hay en stash
git stash drop //Borra lo que hay en stash
git stash list //Ver que hay en stash