Show Menu
Cheatography

Estados de git

Working directory
Archivos sin seguim­iento
Staging area
Archivos con seguim­iento
git directory (repos­itory)
Archivos en el reposi­torio
Conociendo el estado de los ficheros
git status

Ficheors en git

Estados de ficheros en git

Workflow

Creación de reposi­torios

Desde un servidor
git clone url [nombr­e-c­arp­eta]
En una carpeta con código
git init
En una carpeta nueva
git init nombre­-ca­rpeta
Clonar todo el reposi­torio
git clone --mirror

De working directory a staging area

Un fichero concreto
git add ruta-f­ichero
Todos los ficheros creados, modifi­cados y eliminados
git add -A
Todos los ficheros creados y modifi­cados
git add .
Todos los ficheros modifi­cados y eliminados
git add -u

De staging area a working directory

Quitar uno o varios ficheros o direct­orios fichero del área de staging
git rm --cached fichero1 fichero2 direct­ori­o1....
Quitar uno o varios ficheros del área de staging y borrarlo del disco
git rm -f fichero1 fichero2 direct­ori­o1...

De staging area a git directory

Guardando los cambios en el reposi­torio (Hacer un commit)
git commit -m "­com­ent­ari­o"
Modifi­cando el ultimo cambio (commit) guardado
git commit --amend
 

Guardando cambios tempor­almente

Haciendo un stash con los cambios actuales
git stash
Ver la lista de estados guardados
git stash list
Borrar algun estado
git stasth drop stash@{n}
Cojiendo los cambios del ultimo estado guardado
git stash apply
Coger algún estado concreto
git stash apply stash@{n}
Agregar los ficheros al stagin area y guardar todo como estado
git stash -u
Limpiar los estados guardados
git stash clear

Trabajando con ramas

Creando una rama
git branch rama
Crear rama y moverte a ella
git checkout -b rama
Cambiar a una rama
git checkout rama
Cambiar a un commit
git checkout HASH
Renombrar una ramas
git branch -m "­ram­a" "­nom­bre­"
Listando ramas
git branch -l
Borrando una rama
git branch -d <nombre de rama>
Borrando una rama con commits
git branch -D <nombre de rama>

Revisando cambios entre commits

Compara staging area con el ultimo commit
git diff
Compranado dos commits
git diff HASH1 HASH2
Comparando dos tags
git diff TAG1 TAG2
Comparando un archivo
git diff Nombre­_ar­chivo
Diferencia desde staged
git diff --staged

Reseteando cambios

Borras todos los commit asta cierto punto pero mantienes los cambios en el area de stagin
git reset --soft HASH
Igual que --soft pero dejando los cambios en working directory
git reset --mixed
Borra los commits y no mantiene los cambios
git reset --hard HASH
Deshader todos los cambios del working directory
git reset --hard
Deshadcer los cambios de un fichero
git checkot fichero

Etique­tando estados

Etique­tando el commit actual
git tag -a "­eti­que­ta" -m "­mensaje de la etiqut­a"
Etique­tnado un commit concreto
git tag "­eti­que­ta" HASH
Renomb­rando una etiqueta
git tag -f -a "­eti­que­ta" -m "­mensaje de la etique­ta" HASH
Borrando una etiqueta
git tag -d "­eti­que­ta"
Ver lista de tags
git tag -l
 

Uniendo commits

Rebasando commits desde el actual asta el n-esimo, sera necesario hacer push con -f
git rebase -i HEAD~n
Rebasando comit actual con otra rama
git rebase rama
Mezclando ramas en la actual
git merge rama_q­ue_­que­rem­os_­mez­clar
Copiendo un commit select­iva­mente
git cherry­-pick HASH

Trabajando en remoto

Agregando un servidor remoto
git remote add nombre url
Quitar un servidor remoto
git remote remove nombre url
Traer cambios sin sobres­cribir
git fech
Traer cambios y sobres­cribir
git pull
Subiendo cambios
git push -u remote rama
Forzando subida
git push -f remote rama
Borrar una rama remota
git push remote --delete rama
Subiendo o trallendo todos los cambios
Agregar --all al final
Subiendo una etiqueta
git push -u remote etiqueta
Borrando una etique­taborar
git push --delete remote tag
Desacer un push
git push -f origin ultimo­_co­mmi­t_c­orr­ect­o:rama

Ver la historia

Ver los commits del reposi­torio
git log
En una sola linea
git log --oneline
Con grafico
git log --online --graph
Los ultimos n commits
git log --online --graph -n

Config­urando git

Modifi­cando el editor
git config --global core.e­ditor "­editor --wait­"
Establ­eciendo el usuario
git config --global user.name = "­Usu­ari­o"
Establ­eciendo el email
git config --global user.email = correo­@co­rreo.es
Establ­eciendo alias
git config --global alias.s­up­erlog "log --graph --abbr­ev-­commit --decorate --date­=re­lative --form­at=­for­mat­:'%­C(bold blue)%­h%C­(reset) - %C(bold green)­(%a­r)%­C(r­eset) %C(whi­te)­%s%­C(r­eset) %C(dim white)- %an%C(­res­et)­%C(bold yellow­)%d­%C(­reset)' --all"

Trucos

Uniendo todos los commits en uno
git rebase -i HEAD --root
Conociendo quien cambio un fichero
git blame file
 

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
          Bash Dev Cheat Sheet