Ir al contenido
angel.library

Git — instalación y flujo esencial desde la terminal

Git es un sistema de control de versiones distribuido. Registra cambios como commits, permite crear ramas y conserva el historial completo del proyecto en cada clon. Es una herramienta local: puedes usar Git sin tener cuenta en GitHub, GitLab o Bitbucket.

GitHub es una plataforma que aloja repositorios Git. Por eso git commit funciona sin conexión, mientras que git push necesita un servidor remoto y un método de autenticación. Tampoco debe confundirse git con gh: Git administra el historial; GitHub CLI administra recursos de GitHub, como Pull Requests e Issues.

El instalador oficial de Git for Windows incluye Git, Git Bash y un administrador de credenciales. También puede instalarse desde una terminal:

Ventana de terminal
winget install --id Git.Git -e

Si ya utilizas Chocolatey:

Ventana de terminal
choco install git -y

Git Bash proporciona Bash y varias utilidades de Unix en Windows, pero Git también funciona desde PowerShell, Windows Terminal y la terminal integrada del editor.

Al ejecutar Git por primera vez, macOS puede ofrecer instalar las Command Line Tools de Xcode:

Ventana de terminal
git --version

Homebrew permite instalar una versión independiente que suele actualizarse con mayor rapidez:

Ventana de terminal
brew install git

Usa el gestor de paquetes de la distribución:

Ventana de terminal
# Debian y Ubuntu
sudo apt update
sudo apt install git
# Fedora
sudo dnf install git
# Arch Linux
sudo pacman -S git
Ventana de terminal
git --version
git --help

El primer comando confirma que el ejecutable está disponible en PATH. El segundo abre la ayuda general; git help <comando> o git <comando> --help muestra la referencia de una operación concreta.

Todo commit almacena el nombre y correo de su autor. Estos valores no autentican una cuenta: forman parte de los metadatos del historial.

Ventana de terminal
git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"
git config --global init.defaultBranch main

Comprueba qué configuración se aplica y desde qué archivo proviene:

Ventana de terminal
git config --list --show-origin

La opción --global afecta al usuario de la máquina. Una configuración ejecutada sin --global dentro de un repositorio es local y puede reemplazarla, algo útil al separar identidades personal y laboral. La configuración inicial de Git explica editores, aliases y capas con más detalle.

Inicializa una carpeta que todavía no tiene historial:

Ventana de terminal
mkdir mi-proyecto
cd mi-proyecto
git init

O descarga un repositorio que ya existe:

Ventana de terminal
git clone https://github.com/organizacion/proyecto.git
cd proyecto

git init crea el directorio interno .git; no publica nada. git clone copia archivos, ramas, objetos y configuración del remoto origin.

Ventana de terminal
git status
git add src/app.ts
git diff --staged
git commit -m "feat: agrega validación de acceso"
  1. status muestra el estado del directorio de trabajo y del área de preparación.
  2. add selecciona el contenido que entrará en el próximo commit.
  3. diff --staged permite revisarlo antes de guardar.
  4. commit crea una instantánea con un mensaje que explica el cambio.

git add no sube archivos a internet. Solo copia su versión actual al staging area, también llamada índice. Si editas el archivo otra vez después de agregarlo, debes ejecutar git add nuevamente para incluir esa nueva versión.

Ventana de terminal
git switch -c feat/perfil
# realizar cambios y commits
git push -u origin feat/perfil

Una rama es un nombre móvil que apunta a un commit. switch -c crea una rama y cambia hacia ella. El primer push -u publica la rama y configura su rama ascendente; después suelen bastar git push y git pull.

Ventana de terminal
git fetch origin
git pull --ff-only
git push

fetch descarga referencias sin modificar tus archivos. pull integra cambios remotos en la rama actual; --ff-only evita crear un merge automático inesperado. push envía commits locales que todavía no existen en el remoto.

Las operaciones locales no. La autenticación aparece al leer o escribir un remoto privado, o al publicar cambios.

ProtocoloCómo se autenticaCuándo conviene
HTTPSAdministrador de credenciales, token o sesión configurada por gh auth setup-gitInicio rápido y equipos con políticas HTTPS
SSHPar de claves pública/privada registrado en la plataformaUso frecuente y varias operaciones sin pedir credenciales

Nunca coloques un token dentro de la URL del remoto ni lo guardes en el repositorio. En GitHub, la contraseña de la cuenta no reemplaza un token para operaciones Git por HTTPS. La guía de perfil y claves SSH y la instalación de GitHub CLI cubren ambos caminos.

ComandoResultado
git initConvierte la carpeta actual en un repositorio
git clone <url>Crea una copia local de un repositorio remoto
git statusExplica qué cambió y qué está preparado
git add <ruta>Prepara contenido para el próximo commit
git diffCompara cambios todavía no preparados
git diff --stagedCompara lo preparado contra el último commit
git commit -m "mensaje"Guarda un commit local
git switch -c <rama>Crea una rama y cambia hacia ella
git log --oneline --graph --allMuestra un historial compacto con ramas
git fetchActualiza referencias remotas sin integrar cambios
git pull --ff-onlyActualiza la rama solo si admite avance rápido
git pushPublica commits en el remoto configurado
  • git: command not found: Git no está instalado o la terminal todavía no recibió el nuevo PATH; abre una sesión nueva.
  • Autor incorrecto: revisa git config user.email dentro del repositorio, porque un valor local puede reemplazar al global.
  • nothing to commit: no hay cambios nuevos preparados; consulta git status antes de repetir comandos.
  • non-fast-forward al hacer push: el remoto contiene commits que tu rama no tiene. Ejecuta git fetch, inspecciona la diferencia e integra conscientemente antes de volver a publicar.
  • Archivos sensibles preparados: quítalos del índice antes del commit y corrige .gitignore; añadirlos a `.gitignore después de confirmarlos no borra el historial.

Esta página sirve como instalación y recordatorio inicial. La categoría Git & GitHub desarrolla el modelo mental, conflictos, remotos, rebase, recuperación y colaboración.