DEV Community

Mario Monroy Canizales
Mario Monroy Canizales

Posted on

Guía Git

Guía Básica Git

Git es el sistema de control de versiones distribuidas de código abierto que facilita las actividades de GitHub en su computadora portátil o escritorio. Esta hoja de trucos resume las instrucciones de línea de comando de Git utilizadas comúnmente para referencia rápida.

CONFIGURACIONES INICIALES

Para más información puedes ver la documentación aquí.

Configura la información del usuario para todos los repositorios locales.

Establece el nombre que desea adjuntar a sus commits.

git config --global user.name "nombre_usuario"
Enter fullscreen mode Exit fullscreen mode

Establece el correo electrónico que desea adjuntar a sus commits.

git config --global user.email "correo_electronico"
Enter fullscreen mode Exit fullscreen mode

INICIALIZAR REPOSITORIO

Inicializa un nuevo repositorio en el directorio donde se encuentre ubicado o uno con un nombre específico.

git init
Enter fullscreen mode Exit fullscreen mode

Descarga un proyecto y con él todo su historial de versiones.

git clone [url]
Enter fullscreen mode Exit fullscreen mode

Clonar un proyecto con un nombre alternativo

git clone git://github.com/schacon/grit.git my_nuevo_proyecto
Enter fullscreen mode Exit fullscreen mode

AGREGAR ORIGEN DE REPOSITORIO

Existen dos formas para agregar el origen de un repositorio.

  1. Por medio de https:
git remote add origin https://github.com/nombre/hold1.git
Enter fullscreen mode Exit fullscreen mode
  1. Por medio de ssh:
git remote add origin git@github.com:nombre/hold1.git
Enter fullscreen mode Exit fullscreen mode

Para ver una descripción de la configuración global puede utilizar:

git config --global -l
Enter fullscreen mode Exit fullscreen mode

Ver los repositorios remotos configurados.

git remote -v
Enter fullscreen mode Exit fullscreen mode

Si desea cambiar el repositorio remoto, antes debe quitar los que ya tiene inicializados esto lo puede realizar con el comando.

git remote rm origin
Enter fullscreen mode Exit fullscreen mode

AGREGAR, MODIFICAR Y CONFIRMAR CAMBIOS

Ver las ediciones, cambios.

git status
Enter fullscreen mode Exit fullscreen mode

Otra forma de ver el estado.

git status -s
Enter fullscreen mode Exit fullscreen mode

Pero también podemos ver más detalles del estado.

git status -s -b
Enter fullscreen mode Exit fullscreen mode

En caso existan archivos por agregar, hay que agregarlos a la cola de archivos para comprometer. Este es el “staging area” o área de presentación. Es importante agregar archivos aca, previo a hacer un commit. Aquí agregamos todo, esto lo hacemos con los siguientes comandos y las diferentes opciones.

Este comando agrega todos los archivos modificados.

git add .
Enter fullscreen mode Exit fullscreen mode

También podemos agregar archivos individualmente.

git add nombre_archivo
Enter fullscreen mode Exit fullscreen mode

Podemos agregar la cantidad de archivos que queramos con determinada extensión, esto aplica para los archivos en el mismo directorio.

git add *.py
Enter fullscreen mode Exit fullscreen mode

Para agregar todos los archivos con especifica extensión no importando el directorio en el que se encuentren utilizamos lo siguiente.

git add "*.js"
Enter fullscreen mode Exit fullscreen mode

Agregar todos los archivos de un especifico directorio.

git add public/
Enter fullscreen mode Exit fullscreen mode

Agregar todos los archivos que hayan sido modificados.

git add -A
Enter fullscreen mode Exit fullscreen mode

Excluir un archivo del stage.

git reset *.json
Enter fullscreen mode Exit fullscreen mode

Agregar todos los archivos, se parece al comando **git add .**

git add --all
Enter fullscreen mode Exit fullscreen mode

Si no sabe cuáles cambios han sido agregados al área de (add .) y desea ver cuales son las diferencias existentes en el área de presentación y los archivos que usted ha trabajado, entonces use el siguiente comando que muestra las diferencias.

git diff
Enter fullscreen mode Exit fullscreen mode

Luego agregados todos los archivos, podemos comprometerlos, la bandera -a (para agregar archivos con cambios y quitar los archivos borrados del índice local) y -m (de mensaje) agregando un comentario entre comillas que sirva de referencia.

git commit -am "Mi Primer Commit"ogit commit -m "Mi Primer Commit" (Recomendado)ogit commit
Enter fullscreen mode Exit fullscreen mode

Si solamente utilizar el comando git commit se abrirá un editor vim allí puedes editar tu mensaje.

Si por alguna razón cometes un error en el mensaje del commit, no hay problema esto se puede resolver con el siguiente comando que permite modificar el mensaje del commit.

git commit --amend -m "Mensaje Corregido"
Enter fullscreen mode Exit fullscreen mode

HISTORIAL DE COMMITS

Para ver el listado de commits.

git log
Enter fullscreen mode Exit fullscreen mode

Ver una descripción resumida de los commits.

git log --oneline
Enter fullscreen mode Exit fullscreen mode

Una descripción más detallada.

git log --oneline --decorate --all --graph
Enter fullscreen mode Exit fullscreen mode

Si queremos ver el log aunque hayamos realizado unreset --hard

git reflog
Enter fullscreen mode Exit fullscreen mode

VIAJES EN EL TIEMPO

Restaurar hacia el último cambio para hacer un nuevo commit corregido.

git reset --soft HEAD^
Enter fullscreen mode Exit fullscreen mode

Si queremos regresar hacia un punto en específico del historial de cambios en el repositorio podemos utilizar.

git reset --mixed [número-hash]
Enter fullscreen mode Exit fullscreen mode

Esta opción restaura hacia determinado commit, pero aún mantiene los archivos que hayamos estado trabajando después de ese commit.

La forma recomenda a utilizar es:

git reset --hard [número-hash]
Enter fullscreen mode Exit fullscreen mode

Esta opción nos permite restaurar hacia un punto en específico, descartando todos los cambios que hayamos hecho después de ese commit.

Para recuperar los últimos cambios realizados tras un posible error o pérdida de código puede ejecutar lo siguiente comando, este permite recuperar la información del último commit registrado.

git checkout -- .
Enter fullscreen mode Exit fullscreen mode

Si desea recuperar los últimos cambios registrados de un archivo en especifico.

git checkout -- nombre_archivo
Enter fullscreen mode Exit fullscreen mode

CAMBIAR NOMBRES DE ARCHIVOS CON GIT

Cuando cambiamos el nombre de un archivo manualmente, git puede detectar como si fuera un archivo nuevo, para evitar esto utilizamos lo siguiente:

git mv nombre_script.py nombre_nuevo_script.py
Enter fullscreen mode Exit fullscreen mode

Esto permite que git lleve el registro sobre el mismo archivo y que únicamente detecte que se renombro.

Otra recomendación para cuando se elimina un archivo y para que git lleve un correcto registro podemos hacer los siguiente después de eliminar los n archivos.

git add -u
git add -A
Enter fullscreen mode Exit fullscreen mode

IGNORANDO ARCHIVO (.gitignore)

Si deseamos que git no reconozca ciertos archivos o carpetas, solamente debemos crear un nuevo archivo llamado .gitignore en la raíz del proyecto, donde en cada línea podemos ir agregando que archivos queremos ignorar. Ejemplo:

*.DS_Store
*.pyc
*.egg-info
*.swp
tags/
mi_proyecto/docs/
Enter fullscreen mode Exit fullscreen mode

RAMAS

Crear una rama.

git branch nombre_rama
Enter fullscreen mode Exit fullscreen mode

O puede utilizar el siguiente comando que permite crear una rama y switchear a la misma.

git checkout -b nombre_rama
Enter fullscreen mode Exit fullscreen mode

Ver listado de ramas y listado completo.

git branchogit branch -a
Enter fullscreen mode Exit fullscreen mode

Cambiar de rama.

git checkout nombre_rama
Enter fullscreen mode Exit fullscreen mode

Ver diferencias entre ramas. En este ejemplo, es la diferencia entre la rama nueva y la rama master.

git diff rama_nueva master
Enter fullscreen mode Exit fullscreen mode

Fusionar ramas, esto se debe hacer desde la rama master.

git merge nombre_rama
Enter fullscreen mode Exit fullscreen mode

Eliminar una rama.

git branch -d nombre_rama
Enter fullscreen mode Exit fullscreen mode

Eliminar rama de forma forzada.

git branch -D nombre_rama
Enter fullscreen mode Exit fullscreen mode

Después de haber eliminado las ramas locamente puede limpiar el registro de nuevo, para que ya no aparezcan en el repositorio remoto, esto es opcional.

git remote prune origin
Enter fullscreen mode Exit fullscreen mode

TAGS Y ETIQUETAS

Los tags, etiquetas nos permiten crear descripciones para ciertos releases, por ejemplo para una versión de aplicación.

Crear un tag.

git tag release-v1
Enter fullscreen mode Exit fullscreen mode

Ver el listado de tags.

git tag
Enter fullscreen mode Exit fullscreen mode

Eliminar un tag.

git tag -d nombre-tag
Enter fullscreen mode Exit fullscreen mode

Forma Correcta para crear un release (-a = anotación).

git tag -a v1.0.0 -m "Mensaje descriptivo de la versión"
Enter fullscreen mode Exit fullscreen mode

Crear un tag o release para cualquier punto en el historial de nuestra proyecto.

git tag -a v1.0.0 [numero-hash] -m "Mensaje"
Enter fullscreen mode Exit fullscreen mode

Ejemplo:

git tag -a v1.0.0 ca82a6d -m "Versión Producción"
Enter fullscreen mode Exit fullscreen mode

Ver informacion sobre un tag.

git tag show nombre_tag
Enter fullscreen mode Exit fullscreen mode

GIT STASH

Git stash nos permite dejar lo que estamos trabajando en un punto, para enfocarnos en otro punto para luego recuperar lo que no terminamos.

git stashogit stash save
Enter fullscreen mode Exit fullscreen mode

Agregando mensajes a los stash, ya podemos tener más de un stash.

git stash save "Mensaje"
Enter fullscreen mode Exit fullscreen mode

Ver informacion de los stash.

git stash list

git stash list --stat

git stash show
Enter fullscreen mode Exit fullscreen mode

Recuperar un stash, esto extrae el último stash registrado con sus respectivos datos, cuando se ejecuta recupera el último stash y lo elimina, como si fuera de una pila.

git stash pop
Enter fullscreen mode Exit fullscreen mode

Tambien podemos utilizar apply.

git stash apply

o

git stash apply [hash]
Enter fullscreen mode Exit fullscreen mode

Si ya no vamos a utilizar un stash, hay que eliminarlo! Después de esto hay que verificarlo viendo el listado usando cualquiera de los comandos anteriores.

git stash drop

o

git stash drop [hash]
Enter fullscreen mode Exit fullscreen mode

EMPUJANDO LOS CAMBIOS

Ahora empujemos los cambios a nuestro repositorio en GitHub, esto lo hacemos con:

git push -u origin master
Enter fullscreen mode Exit fullscreen mode

La bandera -u nos permite indicar a que rama queremos hacer el push, para que la proxima vez podamos solamente utilizar

git push
Enter fullscreen mode Exit fullscreen mode

o bien puedes utilizar.

git push origin master
Enter fullscreen mode Exit fullscreen mode

Hacer Push de Tags

git push --tags
Enter fullscreen mode Exit fullscreen mode

GIT PULL Y GIT FETCH

Git pull nos permite sincronizar los cambios remotos con los cambios locales, cuando se utiliza git pull este automaticamente hacer merge los cambios remotos con los datos que tengamos en local.

git pull origin master

o

git pull

y en caso no funcionen los comandos anteriores

git pull --all
Enter fullscreen mode Exit fullscreen mode

Git Fetch nos permite actualizar nuestro repositorio local con los cambios realizados en el repositorio remoto.

git fetch
Enter fullscreen mode Exit fullscreen mode

Para ver los cambios, actualizaciones de un repositorio forkeado de algun compañero podemos utilizar.

git remote add upstream <repositorio_original>

git fetch upstream
Enter fullscreen mode Exit fullscreen mode

ERROR AL AGREGAR ARCHIVOS

Puede ocurrir el error que git no nos permita agregar archivos, esto lo podemos solucionar con.

rm -f ./.git/index.lock
Enter fullscreen mode Exit fullscreen mode

Esto eliminará de forma forzada el archivo index.lock lo cual provoca el error.

Top comments (0)