Skip to content

Instantly share code, notes, and snippets.

@felipecabargas
Last active October 4, 2015 04:49
Show Gist options
  • Save felipecabargas/3524896d606e015cfd2c to your computer and use it in GitHub Desktop.
Save felipecabargas/3524896d606e015cfd2c to your computer and use it in GitHub Desktop.
Comandos Básicos de Git [SFD]

#Git Essentials

###NOTAS:

  • <variable> Indica variable.
  • [option] Indica parámetro opcional.

##Repositorios git init

Inicia un repositorio, esto crea la carpeta .git/dentro del directorio de trabajo para mantener la "base de datos" de los objetos que trackea git.

##Archivos y cambios git add <filename>

Añade a filename al indice del repositorio, genera un BLOB para el archivo o lo apunta a uno de igual contenido.

git status

Permite saber el estado actual del repositorio. Nos dice si hay archivos disponibles para añadir/remover además de los del area de staging listos para un nuevo commit.

git diff

Muestra la diferencia entre el area de staging y los archivos actuales (lo no añadido).

##Commits git commit [-m "Mensaje de Commit"]

Genera un nuevo snapshot del repositorio con los cambios del area de staging.

git log [--oneline] [--graph]

Nos muestra un log de los commits en forma de lista.

git blame <filename>

Nos muestra el autor, commit y fecha de introducción de cada una de las líneas del filename consultado.

##Reset git reset [--type] <commit>

Rebovina el HEAD de la rama a un commit dado o a n commits atrás (con HEAD~n)

####Types:

--hard

Deshace los cambios al hacer el reset. Los archivos vuelven al estado del commit al que se retrocedió.

--soft

Deshace los commits. Los archivos se mantienen igual, pero las lineas que difieran del commit al que se retrocedió deberán volver a añadirse para integrarlas a la base de datos.

##Revert git revert <commit>

Añade un commit reverso autogenerado respecto al target (commit). Basicamente quita cada linea añadida y añade cada linea eliminada por el target.

##Remotes & sync git remote add <alias> <target-url>

Agrega un servidor remoto con el cual sincronizar (github, gitlab, bitbucket).

git pull <remote-alias> <target-branch>

Trae cambios desde el remote hacia nuestro equipo.

git push <remote-alias> <target-branch>

Envía cambios desde nuestro equipo hacia el remote.

##Branching git branch <name>

Crea una nueva rama con nombre name.

git checkout <name>

Cambia nuestro workspace a la rama name.

##Refactoring git rebase <parent>

Replica la rama actual sobre la rama parent. Sirve para actualizar referencias. Nos permite resolver conflictos durante su ejecución.

##Merge git merge <target-branch>

Mezcla ramas. Marcará los conflictos para su resolución posterior.

##Pro-Tips git cherry -v <remote-alias>/<target-branch>

Muestra que commits no han sido enviados al remote-alias/target-branch (ej: origin/master).

Instalar tig

Muestra un mejor log que git log que además es navegable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment