Índice
- Configuración
- Archivos de Configuración
- Crear
- Cambios locales
- Buscar
- Historial de Commits
- Ramas & Etiquetas
- Actualizar & Publicar
- Fusionar & Rebasar
- Deshacer
- Git Flow
Configuración
Mostrar la cofiguración actual:
$ git config --list
Mostrar la configuración local:
$ git config --local --list
Mostrar la configuración global:
$ git config --global --list
Mostrar la configuración del sistema:
$ git config --system --list
Establecer un nombre que es identificable de crédito cuando se revise el historial de versiones:
$ git config --global user.name "[nombre apellido]"
Establecer una dirección de email que será asociada con cada marca histórica:
$ git config --global user.email "[email-válido]"
Establecer coloreado automático de la línea de comandos de Git para una fácil revisión:
$ git config --global color.ui auto
Establecer el editor global para commits:
$ git config --global core.editor vi
Archivos de Configuración
Archivo de configuración específico del repositorio [–local]:
/.git/config
Archivo de configuración específico del usuario [–global]:
~/.gitconfig
Archivo de configuración del sistema [–system]:
/etc/gitconfig
Crear
Clonar un repositorio existente:
Existen dos maneras:
Vía SSH
$ git clone ssh://usuario@dominio.com/repo.git
Vía HTTP
$ git clone http://dominio.com/usuario/repo.git
Crea un nuevo repositorio local:
$ git init
Cambios Locales
Cambios en el directorio de trabajo:
$ git status
Cambios en archivos rastreados:
$ git diff
Agregar todos los cambios actuales al siguiente commit:
$ git add .
Agregar algunos cambios de para el siguiente commit:
$ git add -p
Realizar un commit de todos los cambios locales en los archivos rastreados:
$ git commit -a
Realizar un commit de los cambios previamente almacenados en el área de pruebas (stage area):
$ git commit
Realizar un commit con un mensaje:
$ git commit -m 'aquí el mensaje'
Realizar un commit saltándose el área de pruebas y agregando un mensaje:
$ git commit $ git commit -am 'aquí el mensaje'
Realizar un commit a alguna fecha anterior:
$ git commit --date="`date --date='n day ago'`" -am "Mensaje del commit"
Cambiar último commit:
$ git commit -a --amend
Cambiar fecha del último commit:
$ GIT_COMMITTER_DATE="date" git commit --amend
Cambiar fecha del autor del último commit:
$ git commit --amend --date="date"
Mover cambios no confirmados (uncommitted changes) de la rama actual a otra rama:
$ git stash
$ git checkout branch2
$ git stash pop
Restaurar cambios del área de pruebas (stage area) a la rama actual:
$ git stash apply
Eliminar la última serie de cambios del área de pruebas (stage area):
$ git stash drop
Buscar
Un texto en todos los archivos del directorio:
$ git grep "Hola"
Un texto en cualquier versión:
$ git grep "Hola" v2.5
Historial de Commits
Mostrar todos los commits, empezando por los más recientes (se mostrará el hash, información sobre el autor, fecha y título del commit):
$ git log
Mostrar todos los commits (sólo se mostrará el hash y el mensaje del commit):
$ git log --oneline
Mostrar todos los commits de un usuario específico:
$ git log --author="usuario"
Mostrar los cambios a través del tiempo de un archivo específico:
$ git log -p
Mostrar commmits que están presentes sólamente en remote/branch al lado derecho:
$ git log --oneline .. --left-right
Quién cambió, qué y cuándo en :
$ git blame
Mostrar reference log:
$ git reflog show
Borrar reference log:
$ git reflog delete
Ramas & Etiquetas
Listar todas las ramas locales:
$ git branch
Listar todas las ramas remotas:
$ git branch -r
Cambiar rama HEAD:
$ git checkout
Crear nueva rama y cambiar a esta:
$ git checkout -b
Crear nueva rama basada en la rama HEAD actual:
$ git branch
Crear nueva rama de seguimiento basada en una rama remota:
$ git branch --track
Eliminar una rama local:
$ git branch -d
Forzar eliminación de una rama local:
$ git branch -D
Marcar el commit actual con una etiqueta:
$ git tag
Marcar el commit actual con una etiqueta que incluye un mensaje:
$ git tag -a