Comando git
El comando git es la interfaz de línea de comandos para interactuar con Git, el sistema de control de versiones distribuido más popular y utilizado del mundo. Creado por Linus Torvalds en 2005 para el desarrollo del núcleo de Linux, permite a los desarrolladores y técnicos registrar el historial de cambios en el código fuente, colaborar en equipo de manera concurrente, gestionar ramas de trabajo y fusionar código de forma eficiente.
| Categoría | Control de Versiones y Desarrollo |
|---|---|
| Disponible en | Linux / Unix / macOS / Windows |
| Equivalente en Windows | git (disponible de forma idéntica en Git Bash, CMD o PowerShell tras su instalación) |
| Sustituye a | Sistemas centralizados antiguos (como SVN o CVS) y copias manuales de archivos comprimidos (ej. proyecto_v1_final_definitivo.zip). |
| ¿Requiere permisos de administrador? | No, se ejecuta completamente a nivel de usuario dentro de los directorios de trabajo locales o repositorios clonados. |
¿Qué significa su nombre?
GIT es una palabra en argot británico que significa persona desagradable o tonta. Linus Torvalds eligió este nombre de forma irónica y humorística, explicando en su documentación inicial: "Soy un cabrón egoísta, y nombro a todos mis proyectos según mi propio nombre. Primero Linux, ahora Git".
A nivel técnico, Git fue concebido para ser rápido, eficiente con grandes repositorios y totalmente distribuido, lo que significa que cada copia de trabajo local es un repositorio completo con un historial de cambios íntegro, sin depender de un servidor central constante.
¿Para qué sirve?
El comando git sirve principalmente para:
- Inicializar y gestionar repositorios de código locales o clonados desde servidores remotos (como GitHub, GitLab o Bitbucket).
- Registrar (hacer commit) de los cambios realizados en archivos, manteniendo una traza cronológica exacta de qué se modificó, quién y cuándo.
- Crear ramas (branches) independientes para desarrollar nuevas funcionalidades o corregir errores sin afectar al código de producción estable.
- Fusionar (merge) diferentes líneas de desarrollo y resolver conflictos de código de forma colaborativa.
Sintaxis
git [subcomando] [opciones] [argumentos...]
A diferencia de la mayoría de comandos de Unix, git actúa como un comando principal que redirige las acciones según el subcomando que se le indique (por ejemplo, git clone, git commit, etc.). Los subcomandos más habituales son:
| Subcomando | Descripción |
|---|---|
init |
Inicializa un nuevo repositorio de Git vacío en el directorio actual. |
clone [url] |
Clona o descarga un repositorio remoto existente en el equipo local. |
add [archivo] |
Añade archivos al área de preparación (staging area) para incluirlos en el próximo registro. |
commit -m "mensaje" |
Guarda de forma permanente los cambios preparados en el repositorio con un mensaje descriptivo. |
status |
Muestra el estado actual del directorio de trabajo y los archivos modificados o pendientes. |
Comandos más utilizados
| Comando | Descripción |
|---|---|
git status |
Comprueba qué archivos han sido modificados o están listos para guardarse. |
git add . |
Prepara todos los archivos modificados del directorio actual para el siguiente registro. |
git commit -m "Corrección de bug en login" |
Registra los cambios en el historial local adjuntando un mensaje explicativo. |
git push origin main |
Sube los registros locales acumulados hacia el servidor remoto (rama principal). |
Equivalencia con otros sistemas
| Acción | Git (Estándar de la industria) | Sistemas Centralizados Antiguos (SVN / CVS) |
|---|---|---|
| Crear repositorio local | git init |
svnadmin create |
| Guardar cambios locales | git commit |
svn commit (requería conexión directa al servidor) |
| Trabajo offline | Totalmente nativo y descentralizado | Muy limitado o imposible sin conexión al servidor central |
Ejemplos
Inicializar un repositorio Git en una carpeta de proyecto local
git init
Comprobar el estado de los ficheros del proyecto
git status
Preparar y registrar cambios en el historial del repositorio
git add .
git commit -m "Añadida la página de contacto inicial"
Clonar un repositorio remoto de prácticas desde GitHub
git clone https://github.com/usuario/repositorio-practicas.git
Ejemplo de salida
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: index.html
no changes added to commit (use "git add <file>..." to update what will be committed)
¿Cómo interpretar la salida?
- On branch main: Indica que actualmente te encuentras trabajando sobre la rama principal del repositorio (llamada
main). - Changes not staged for commit: Alerta de que hay modificaciones en archivos del proyecto que todavía no han sido preparados para guardarse.
- modified: index.html: Muestra el archivo concreto que ha sufrido alteraciones desde el último registro guardado.
Errores habituales
- Olvidar ejecutar
git addantes de hacer ungit commit, lo que provoca que Git informe de que no hay cambios preparados para registrar (nothing to commit). - Intentar hacer un
git commitsin haber configurado previamente la identidad del usuario (nombre y correo electrónico) mediante los comandosgit config --global user.nameygit config --global user.email.
Conceptos relacionados
- Control de versiones distribuido
- Área de preparación (Staging Area)
- Ramas (Branches) y Fusión (Merge)
- Repositorios remotos (GitHub / GitLab)
- Conflictos de código
Comandos relacionados
git loggit pullgit pushgit branchgit checkout/git switch
Curiosidades
Git es tan potente y fiable que se ha convertido en el estándar indiscutible de la industria del software. No solo se utiliza para escribir código de programación; hoy en día se emplea masivamente para redactar libros académicos, tesis doctorales, documentación técnica en Markdown e incluso para sincronizar configuraciones complejas de servidores entre administradores de sistemas.
Prácticas propuestas
- Crea una nueva carpeta en tu equipo para un proyecto de clase, accede a ella e inicializa un repositorio local ejecutando
git init. - Crea un archivo de texto llamado
index.htmldentro de la carpeta con un contenido básico de prueba. - Ejecuta
git statuspara observar cómo Git detecta el archivo nuevo como un elemento no rastreado (untracked). - Prepara el archivo para su registro ejecutando
git add index.htmly vuelve a comprobar el estado congit status. - Guarda los cambios de forma permanente en el historial local utilizando
git commit -m "Primer commit del proyecto". - Consulta el historial cronológico de registros ejecutando el comando
git logpara verificar que todo se ha grabado correctamente.
Consejo: Adquiere el hábito de escribir mensajes de commit claros, descriptivos y breves en imperativo (por ejemplo: "Añade validación de formularios" en lugar de "añadí cosas"); facilitará enormemente la lectura del historial cuando trabajes en equipo.