Show Menu
Cheatography

Chuleta de Git en Español Cheat Sheet by

Git cheat sheet o chuleta de git con los comandos más usados. Tú referencia de ayuda con todas las características.https://www.clicksolution.es/

Estados

Publicar

git push origin main
origin: Reposi­torio remoto, por defecto origin
main: Rama principal, por defecto en github (antes era master)
git push Envía los cambios automá­tic­amente al origin y rama actual
git push -f Para cuando quieres forzar la subida y trabajas solo o también cuando quieres joder al equipo
git push -u origin main: Tambien se puede usar para indicar el reposi­torio remoto.

-u: Es un flag de --set-­ups­tream, se refiere al reposi­torio remoto principal al que harás pull y push, esta opción se utiliza una sola vez y se puede configurar en el .gitconfig

Ramas (Branch)

git branch: Lista toda las ramas
git branch -d <br­anc­h-n­ame>: Elimina una rama
git checkout <br­anc­h-n­ame>: Cambia de rama
git checkout -b <br­anc­h-n­ame>: Cambia de rama y si no existe la crea

Unir o fusionar ramas

git merge <ra­ma>: Fusiona la rama indicada con la actual
git merge --no-ff <ra­ma>: Fusiona la rama sin avance rápido, es decir creando commit y dejando historial en el head
git merge --squash <ra­ma>: Unir todos los commit en uno solo de la rama y fusionar.
git rebase <ra­ma>
git rebase -i HEAD~3: Los últimos 3 commits
-i: Modo intera­ctivo pudiendo poner squash en todos menos el primero para unir todos los commits
git reset --soft HEAD~3 && git commit
git commit --edit -m"$(git log --form­at=%B --reverse HEAD..H­EA­D@{­1})­"
git reset --rebase: Deshacer rebase
git reset --merge: Deshacer merge
Git rebase básica­mente lo que hace es recopilar uno a uno los cambios confir­mados en una rama, y reapli­carlos sobre otra. Utilizar rebase nos puede ayudar a evitar conflictos siempre que se aplique sobre commits que están en local y no han sido subidos a ningún reposi­torio remoto.
es una manera de unir los cambios que hagamos en un branch dedicado a algún feature o un hotfix hacia nuestro branch principal pero manten­iendo cierto orden en nuestra línea de tiempo, teniendo todo dentro de un sólo timeline.
 

.gitconfig ~/.git­config

git config --global user.name "­jca­rlo­swe­b"
git config --global user.email "­nom­eac­uer­do@­gma­il.c­om­"
git config --global core.f­ilemode false
git config --global pull.r­ebase true
git config --global rebase.au­toStash true
git config --global init.d­efa­ult­Branch "­mai­n"

Iniciar reposi­torio

Añadir cambios

git add . añade todo
git commit -m "Mi primer commit­"
git commit -am "Mi segundo commit para archivos modifi­cad­os"
-am es evitar ahorrarte el paso de añadir y hacer todo de una vez, pero solo vale para archivos modifi­cados, no para nuevos.
git commit --amend -m "Este es el mensaje correc­to": Modificar un commit existente sin haber hecho push

Deshacer cambios en Local

git reset <co­mmi­t-i­d-o­r-H­EAD­~1>
--mixed: Por defecto. Elimina los commit, no conserva los cambios en el stage area y mantiene los cambios en el working tree
--soft: Elimina los commit, conserva los cambios en el stage area y mantiene los cambios en el working tree
--hard: Elimina los commit, no conserva los cambios en el stage area y deshace los cambios en el working tree
git checkout -- <no­mbr­e-a­rch­ivo>
git checkout <co­mmi­t> Utiliza git checkout para despla­zarte por el historial de confir­mac­iones y consul­tarlo.

Deshacer cambios en remoto

git revert <co­mmi­t-i­d>
git revert @
@: Último commit

Actualizar desde remoto

git remove -v: Listar todos los remotos config­urados
git remote show <re­mot­e>: Mostrar inform­ación sobre el remoto
git fetch <re­mot­e>: Descargar todo los cambios, pero no lo integra en el HEAD
git pull <re­mot­e> <br­anc­h>: Descarga y direct­amente lo integr­a/merge en el HEAD. Es decir fetch + merge
git pull --rebase: La opción "­--r­eba­se" nos permite, de forma ordenada, uno a uno ir aplicando nuestros commits sobre el código que estaba en github
git fetch && git rebase --auto­stash: Guardar automá­tic­amente los cambios antes de realizar la operación de rebase. Antes de ese lanzam­iento, rebase simple­mente se negaría a ejecut­arse. Equiva­lente a: git stash & git pull --rebase & git stash pop
git rebase --abort
git rebase --continue
El concepto de HEAD es muy simple: se refiere al commit en el que está tu reposi­torio posici­onado en cada momento. Por regla general HEAD suele coincidir con el último commit de la rama en la que estés, ya que habitu­almente estás trabajando en lo último. Pero si te mueves hacia cualquier otro commit anterior entonces el HEAD estará más atrás.

https:­//w­ww.c­am­pus­mvp.es­/re­cur­sos­/po­st/­git­-lo­s-c­onc­ept­os-­de-­mas­ter­-or­igi­n-y­-he­ad.aspx
 

Estado, inspec­cionar y comparar

Estado
Inspec­cionar
Comparar
git status
git log --oneline
git diff
 
git blame <ar­chi­vo>
 
git show
 
git reflog

.Gitignore

/docker/: Ignora solo el directorio docker
docker/: Ignora todos los direct­orios docker
*.log: Ignora todos los archivos con la extensión log
/var/c­ache/*: Ignorar todos los archivos de la carpeta cache
!var/c­ach­e/.g­itkeep: Mantener el archivo. gitkeep
Reiniciar .gitignore
git rm -r --cached . && git add . && git commit -m "­update .gitig­nor­e"

Utilidades

Cherry Pick: Traerte uno varios commit de una rama a otra sin necesidad de hacer un merge
git cherry­-pick <co­mmi­t-I­D>
Bisect: Para encontrar bugs
git bisect start <be­gin> <en­d>
git bisect reset
git bisect run "test -f mojón"
git bisect run test.sh
Dejar de monito­rizar un archivo
git update­-index --assu­me-­unc­hanged nochec­k.php
Volver a monoto­rizar
git update­-index --no-a­ssu­me-­unc­hanged nochec­k.php
Stash: coge los cambios sin confirmar (tanto los que están preparados como los que no), los guarda aparte para usarlos más adelante y, acto seguido, los deshace en el código en el que estás trabajando
git stash:Lo almacena
git stash pop: Lo recupera
git stash apply: Lo recupera, pero no lo elimina del stash
Alias
Git Extras
TLDR

Git Gui

Source Tree
PHPStorm Git
VS Code Git
   
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Git Cheat Sheet
          Git Flow Cheat Sheet