Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git init [--bare] [--initial-branch=<name>] [--template=<dir>] [directory]

Descripción

El comando git init crea un repositorio Git nuevo y vacío o reinicializa uno existente. Es típicamente el primer comando que ejecutas cuando quieres empezar a rastrear un proyecto con Git. El comando crea un directorio oculto .git que contiene todos los metadatos que Git necesita: la base de datos de objetos, las referencias, la configuración, los hooks y el index. Sin este directorio, Git no tiene dónde almacenar el historial.

Ejecutar git init en un repositorio existente es seguro: no sobrescribirá objetos ni refs existentes. En su lugar, reinicializará las plantillas y se asegurará de que la estructura del directorio esté intacta. Por defecto, Git moderno crea un repositorio con el nombre de branch configurado por init.defaultBranch, que normalmente es main en instalaciones nuevas.

Más allá del comportamiento predeterminado, git init respeta la configuración core.hooksPath si mantienes un directorio centralizado de hooks, y la config init.templateDir para copiar hooks personalizados y archivos de exclusión a cada nuevo repositorio. En sistemas de archivos donde la sensibilidad a mayúsculas importa, core.ignoreCase se establece automáticamente basado en la detección al momento del init. Los equipos que frecuentemente arrancan nuevos servicios a menudo scriptean los pasos post-init: establecer el branch predeterminado, añadir un archivo de licencia, configurar la plantilla gitignore y configurar un remoto, todo inmediatamente después de ejecutar git init. Entender qué archivos contiene .git/ (HEAD, config, objects/, refs/, hooks/) desmitifica las operaciones posteriores y hace mucho más fácil la recuperación de accidentes.

Opciones comunes

OpciónDescripción
--bareCrea un repositorio bare sin árbol de trabajo, adecuado para alojar en un servidor.
--initial-branch=<name> / -bEstablece el nombre del branch inicial (predeterminado main).
--template=<dir>Usa un directorio de plantillas personalizado para hooks y configuración.
--shared[=<perms>]Permite que el repositorio sea compartido por un grupo Unix.
--separate-git-dir=<dir>Almacena los datos reales de Git en un directorio separado, dejando un archivo .git que apunta a él.
-q, --quietSuprime la salida informativa.

Ejemplos

git init
# Inicializa un repositorio en el directorio actual

git init my-project
# Crea un nuevo directorio e inicializa un repo dentro de él

git init --bare /srv/git/myproject.git
# Crea un repositorio bare para alojar en un servidor

git init -b trunk
# Inicializa con el branch inicial llamado "trunk" en lugar de "main"

Errores comunes

Un error frecuente es ejecutar git init en tu directorio home por accidente, lo que convierte tu carpeta home entera en un repositorio. Verifica siempre tu directorio actual antes de ejecutarlo. Otra trampa es inicializar un repo dentro del árbol de trabajo de un repo existente: esto crea repos anidados que pueden confundir tanto a herramientas como a humanos. Si creaste accidentalmente un repo no deseado, simplemente elimina el directorio .git para deshacerlo.

Comandos relacionados

git clone, git config, git remote