Git es un sistema de control de versiones, es de código abierto y gratuito, diseñado para manejar todo, desde proyectos pequeños a muy grandes, con velocidad y eficiencia.

A continuación, vamos a explorar los comandos básicos de git. Para la ejecución de dichos comandos es necesario tener git instalado en el equipo; en el siguiente link están las instrucciones de descarga e instalación de este: https://git-scm.com/downloads

Versión

Podemos visualizar la versión de git mediante el comando:

git --version

Configuración General

Asignación del nombre de usuario de manera global. Generalmente el nombre de usuario (username) es el mismo que se usa en github,bitbucket,etc.

git config --global user.name username

Visualización del nombre de usuario:

git config --global user.name

El correo del usuario corresponde al que se registró en github,bitbucket,etc.

git config --global user.email email@servidor.com

Visualización del correo de usuario:

git config --global user.email

Activar colores de git en la terminal:

git config --global color.ui true

Visualizar la configuración global:

git config --global --list

Nota: Cabe resaltar que toda la configuración realizada anteriormente tiene sentido solo si se trabaja con repositorios remotos. Más adelante se explicarán comandos relacionados con repositorios remotos.

Inicialización de un repositorio

Si la idea es comenzar un repositorio desde cero, se debe ejecutar el siguiente comando dentro de la carpeta del proyecto.

git init

Estado del repositorio

La verificación del estado del repositorio nos permite visualizar los archivos que se han modificado y que se deberían añadir a un commit. Esto se puede realizar mediante el comando:

git status

Añadir los archivos con cambios al repositorio local

Se pueden añadir todos los archivos cambiados mediante el comando:

git add -A

o mediante

git add .

Si se quiere especificar qué archivos añadir, se puede hacer de la siguiente manera:

git add archivo

Para verificar si los archivos se añadieron se puede verificar de nuevo el estado del proyecto mediante un git status.

Commits

Para guardar un estado del proyecto, es decir, guardar los cambios realizados se debe realizar un commit. El comando para realizar un commit es el siguiente:

git commit -m "comentario del commit"

Ver los commits realizados:

git log

Exportar los commits a un archivo de texto:

git log > archivo

Volver a un commit anterior sin perder los cambios realizados:

git reset --soft idcommit

El id del commit aparece en el listado de commits que se muestra con git log Ej: ff89f3f…..

Volver a un commit anterior reestableciendo el código que estaba hasta dicho cmmit:

git reset --hard idcommit

Notas:

  • los commits que existían después del commit al que se vuelve por medio de reset desaparecen.
  • Hay otras opciones además de --soft y --hard.

Ramas

Las ramas nos permiten realizar bifurcaciones al proyecto, de manera que se podría decir que se trabaja en otro entorno, sin afectar el proyecto principal, esto para que los cambios se integren a la rama master solo cuando sean aprobados y estén funcionando.

Establecer ubicación en una rama:

git checkout rama

Visualizar ramas:

git branch

Crear ramas:

git branch rama

Borrar una rama:

git branch -d rama

Fusionar ramas:

  • Ubicarse en la rama que va a absorber.
git checkout rama_absorbe
  • Absorber la rama.
git merge rama_absorbida

Repositorios Remotos

Clonar repositorio:

git clone url_repositorio_clonar

Acceso remoto al repositorio:

  • Añadir repositorio remoto
git remote add origin url_repositorio
  • Verificar repositorio remoto
git remote -v

Borrar acceso a repositorio remoto:

git remote remove origin

Nota: Si el repositorio es clonado mediante terminal, el acceso remoto se añade automáticamente y tampoco es necesario inicializar el repositorio git init.

Subir cambios al repositorio remoto:

git push origin rama

Actualizar repositorio local:

git pull

Nota: no confundir con el pull request, lo que hace el git pull es actualizar el repositorio local con los datos del repositorio remoto.