Está en la página 1de 11

Git - Guía rápida

Comandos útiles

CONFIGURACIÓN

git config --global user.name "John Doe" Establece la identidad con la cual se va a
registrar los commits en el repo remoto
git config --global user.email
johndoe@example.com

git push --set-upstream origin master Sube los cambios al repositorio remoto y
establece el repositorio remoto y la rama
por defecto. Para posteriores push o pull no
será necesario indicar estos dos valores, ya
que tomará este valor

INICIALIZAR UN REPOSITORIO

git init Inicializa un nuevo repositorio en el


directorio actual

git clone Clona un repositorio existente


https://github.com/sidlors/CursoJavaOCA.wi
ki.git

CAMBIOS LOCALES

git status Muestra el estado del repositorio, es decir


que archivos han sido tocados con respecto
a la última actualización que hemos dado al
repositorios local(HEAD)

git add . Agrega todos los cambios de los archivos


que fueron modificados para prepararlos
para el próximo commit

git add [ archivo | carpeta ] Agrega los cambios de un archivo (o


carpeta ) al index y así prepararlos para el
próximo commit

git commit -m “mensaje del commit” Agrega al HEAD todos los archivos que
fueron que estan

git commit -m “nueva descripción” Renombra el último commit realizado


--amend

ACTUALIZA Y FUSIONAR

1
git pull <nombre-repo-remoto> <rama> Actualiza tu repositorio local al commit mas
nuevo , baja y fusiona los cambios remotos

git push <nombre-repo-remoto> <rama>

RAMAS

git branch Lista las ramas existentes

git branch <nombrerama> Crea un nueva rama llamada


"nombrerama"

Una rama nueva no estará disponible para


los demás a menos que subas (push) la
rama a tu repositorio remoto git push
origin <branch>

git branch -d <nombrerama> Elimina la rama llamada “nombrerama”


localmente

git checkout <nombrerama> Me mueve a la rama "nombrerama"

git checkout -b <nombrerama> Crea la rama "nombrerama" y me mueve a


ella

git checkout <hashcommit> Me mueve del commit en el que estoy


ubicado hacia el commit que indica el hash
(crea una rama alternativa, creo ?)
usar "git checkout master" para volver al
último commit de la rama master (si
estabas trabajando en otra rama el colocar
nombre de la rama Correspondiente)

git merge <nombrerama> Fusiona la rama "nombrerama" a la rama


actual (crea un commit nuevo)

git branch -m <newname> Renombra la rama actual

git push origin --delete Elimina ramas remotas


the_remote_branch

o también

git push origin :the_remote_branch

GUARDADO RÁPIDO PROVISIONAL

2
git stash Este comando de guardado rápido
(stashing) toma el estado del espacio de
trabajo, con todas las modificaciones en los
archivos bajo control de cambios, y lo
guarda en una pila provisional, limpiando el
área de trabajo. Desde allí, se podrán
recuperar posteriormente y volverlas a
aplicar de nuevo sobre el espacio de
trabajo.
- solo toma los cambios con
seguimiento (staging area)

git stash branch <name_branch> crea una nueva rama, extrayendo


(checkout) la confirmación de cambios
original en la que se estaba cuando los
cambios fueron guardados en la pila,
reaplica estos sobre dicha rama y los borra
de la pila si se consigue completar el
proceso con éxito.

git stash apply Sirve para aplicar los cambios previamente


guardados con ‘git stash’.

git stash save [-u] <message> Stashea los cambios con un mensaje
particular

git stash -u Stashea los cambios incluyendo los


archivos sin seguimiento(en el working
area)

BORRAR COMMITS
Borrar commits de git: reset, rebase y cherry-pick

git reset HEAD Saca los archivos del área de stage


(archivos agregados)

git reset --hard <HASHCOMMIT> Borra los commits específico posteriores a


HASHCOMMIT ,elimina los cambios

git revert <HASHCOMMIT> Realiza un nuevo commit que borre el


commit que queremos eliminar.

git reset --soft HEAD~1 --soft: con esta opción estamos


indicando que retrocedemos a el
commit HEAD~1 y no perdemos los
cambios de los commits posteriores.
Todos los cambios aparecerán como
pendientes para realizar un commit.

git reset --hard HEAD~x elimina los ultimos x commits


destruyendo los cambios

3
ALIAS

git config --global alias.co commit Crea un alias llamado ‘co’ para hacer
commit

git config --global --unset alias.co Borra un alias

git config --get-regexp alias Muestra los alias que fueron definidos

Alias útiles
git config --global alias.s status
git config --global alias.br branch
git config --global alias.co commit
git config --global alias.ch checkout
git config --global alias.l log
git config --global alias.mylog '!git log
--author="$(git config user.name)"'
git config --global alias.showalias 'config
--get-regexp alias'

MOVER COMMIT DE RAMA


https://filisantillan.com/como-copiar-un-commit-de-una-rama-a-otra-con-gi
t/

git cherry-pick <HASHCOMMIT> Copia el commit indicado por el hash a la


rama actual

DESHACIENDO COSAS

git checkout -- . deshace todo los cambios del working area


git checkout .

git checkout <path/to/file.php> Deshace los cambios realizados en file.php

git merge --abort Deshace el último merge en el que hubo


conflictos. Solo se puede correr cuando el
merge haya tenido conflictos

git reset . Te saca todos los archivos del staging area


(archivos que fueron agregados)
Luego de ejecutar este comando los
archivos pasarán a estar en working area

UNIR COMMITS

git reset --soft HEAD~i Donde i es el número de commits más


git commit -a -m “new commit message” recientes que quieres fusionar.

4
No se deben fusionar commits que ya se
hayan pusheado

COMANDOS AVANZADOS

git co --amend Puede ser usado para agregar y/o eliminar


archivos del último commit

Se puede usar junto con --no-edit


para decirle a git que no queremos cambiar
el mensaje del ultimo commit

Este documento tiene como objetivo servir como una guía rápida y proveer un resumen de
los comandos básicos y más usados. Para cualquiera que no posea conocimiento previo de
git se recomienda leer la documentación oficial previamente.

Contenido

1. Configurando Git por primera vez


2. Obteniendo un repositorio Git
a. Inicializando un repositorio en un directorio existente
i. Añadiendo repositorios remotos
ii. Mostrando repositorios remotos
b. Clonando un repositorio existente
3. Ciclo de vida del estado de los archivos
4. Comandos útiles

Configurando Git por primera vez


https://git-scm.com/book/es/v1/Empezando-Configurando-Git-por-primera-vez

Tu identidad
Lo primero que deberías hacer cuando instalas Git es establecer tu nombre de
usuario y dirección de correo electrónico. Esto es importante porque las
confirmaciones de cambios (commits) en Git usan esta información, y es
introducida de manera inmutable en los commits que envías:

$ git config --global user.name "John Doe"


$ git config --global user.email johndoe@example.com

5
Tu herramienta de diferencias

Otra opción útil que puede que quieras configurar es la herramienta de diferencias
por defecto, usada para resolver conflictos de unión (merge). Digamos que quieres
usar vimdiff:

$ git config --global merge.tool vimdiff

Comprobando tu configuración

Si quieres comprobar tu configuración, puedes usar el comando git config --list


para listar todas las propiedades que Git ha configurado

Obteniendo un repositorio Git

Inicializando un repositorio en un directorio existente

Si estás empezando el seguimiento en Git de un proyecto existente, necesitas ir al


directorio del proyecto y escribir:

$ git init

Esto crea un nuevo subdirectorio llamado .git que contiene todos los archivos
necesarios del repositorio —un esqueleto de un repositorio Git. Todavía no hay nada
en tu proyecto que esté bajo seguimiento.

Añadiendo repositorios remotos

Ahora debemos conectar nuestro repositorio local que acabamos de crear con
uno remoto

$ git remote add origin https://github.com/user/repo.git

Para agregar más repositorios remotos , asignándole un nombre con el


que referenciarlo fácilmente.

6
git remote add <nombre> <url>

$ git remote add pb git://github.com/paulboone/ticgit.git

Ahora puedes usar la cadena "pb" en la línea de comandos, en lugar de toda la


URL. Por ejemplo, si quieres recuperar toda la información de Paul que
todavía no tienes en tu repositorio, puedes ejecutar git fetch pb

Mostrando repositorios remotos

Para ver qué repositorios remotos tienes configurados, puedes ejecutar el


comando git remote. Mostrará una lista con los nombres de los remotos que
hayas especificado.

git remote -v

También puedes añadir la opción -v, que muestra la URL asociada a cada
repositorio remoto

Clonando un repositorio existente

Si deseas obtener una copia de un repositorio Git existente —por ejemplo, un proyecto en el
que te gustaría contribuir— el comando que necesitas es git clone[url]

Por ejemplo, si quieres clonar la librería Ruby llamada Grit, harías algo así:

$ git clone git://github.com/schacon/grit.git

Esto crea un directorio llamado "grit", inicializa un directorio .git en su interior, descarga
toda la información de ese repositorio, y saca una copia de trabajo de la última versión. Si te
metes en el nuevo directorio grit, verás que están los archivos del proyecto, listos para ser
utilizados. Si quieres clonar el repositorio a un directorio con otro nombre que no sea grit,
puedes especificarlo con la siguiente opción de línea de comandos:

7
$ git clone git://github.com/schacon/grit.git mygrit

Nota: Si clonas un repositorio, el comando añade automáticamente ese


repositorio remoto con el nombre de "origin".

Ciclo de vida del estado de los archivos

Cada archivo de tu directorio de trabajo puede estar en uno de estos dos estados:
bajo seguimiento (tracked), o sin seguimiento (untracked).Los archivos bajo
seguimiento son aquellos que existían en la última instantánea; pueden estar sin
modificaciones, modificados, o preparados.

La primera vez que clonas un repositorio, todos tus archivos estarán bajo
seguimiento y sin modificaciones, ya que los acabas de copiar y no has modificado
nada

A medida que editas archivos, Git los ve como modificados, porque los has cambiado
desde tu última confirmación. Preparas estos archivos modificados [ git add ] y luego
confirmas todos los cambios que hayas preparado [ git commit ], y el ciclo se repite.

Tu repositorio local esta compuesto por tres "árboles" administrados por git. El primero es tu
Directorio de trabajo que contiene los archivos, el segundo es el Index que actúa como
una zona intermedia, y el último es el HEAD que apunta al último commit realizado.

8
Para determinar qué archivos están en qué estado es el comando git status

1. Puedes registrar cambios usando git add <filename> ó para agregar al


Staging Area (también llamado index)todos los archivos modificados git add
*
2. Luego debes confirmar los cambios y agregarlos al repositorio(HEAD)
local debemos hacer un commit

git commit -m “un mensaje para el comit”

Ahora los archivos están incluidos en el HEAD pero aún no está en el


repositorio remoto.
3. Para envíar todos los cambios commiteados al repositorio remoto

git push <nombre-remoto> <nombre-rama>

Si quieres enviar tu rama maestra (master) a tu servidor origen (origin),


ejecutarías esto para enviar tu trabajo al servidor:

9
$ git push origin master

Este comando funciona únicamente si has clonado de un servidor en el que


tienes permiso de escritura, y nadie ha enviado información mientras tanto. Si
tú y otra persona clonais a la vez, y él envía su información y luego envías tú la
tuya, tu envío será rechazado. Tendrás que bajarte primero su trabajo e
incorporarlo en el tuyo para que se te permita hacer un envío

COMANDOS AVANZADOS

Renombrar commits
(No necesariamente el último)

git log
commit2
commit1

Si queremos renombrar el anteúltimo commit (commit1):

git rebase -i HEAD~2

a continuación se abrirá tu editor previamente configurado, donde se mostrarán los dos


últimos commits en el orden en que serán aplicados, donde se mostraran las diferentes
opciones que tenemos para aplicar a estos commits

*Debemos recordar que rebase va aplicar los commits de arriba para abajo

pick 7f9d4bf commit1


pick 3f8e810 commit2
….

Debemos decirle a git que queremos modificar el mensaje del anteultimo commit

reword 7f9d4bf commit1


pick 3f8e810 commit2

guardamos el archivo y git comenzará a aplicar los commits sucesivamente cuando llegue a
la segunda línea, nos abrirá el editor otra vez para que modifiquemos el nombre del commit

10
Eliminar commits

git log
commit3
commit2
commit1

Si queremos eliminar el commit 2, debemos hacer lo siguiente

git rebase -i HEAD~2

y cambiar pick por drop en el commit 2

drop commit2
pick commit3

Links de interés
GIT STASH

https://dev.to/neshaz/how-to-git-stash-your-work-the-correct-way-cna

https://www.themoderncoder.com/rewriting-git-history/#rewording-commit-messages

11

También podría gustarte