Hay dos formas de empezar a trabajar con un repositorio de Git: crear uno nuevo desde cero, o obtener una copia de uno existente.
git init
Ejecutado dentro de un directorio, crea un subdirectorio
.git que contiene toda la estructura interna vacía: la base
de datos de objetos, el índice (vacío), y las referencias. En este
punto, el directorio de trabajo no tiene ningún commit todavía; se
suele decir que HEAD apunta a una rama que aún no existe
(típicamente main o master, según la configuración).
git clone URL
git clone descarga la base de datos completa de objetos de un
repositorio remoto —todos los commits, todas las ramas, todo el
historial— y además crea un directorio de trabajo con el contenido
del último commit de la rama principal. A diferencia de
init, después de un clone el repositorio ya tiene
historial y, automáticamente, una conexión configurada hacia el
repositorio de origen (see Repositorios remotos).
Por ser distribuido, un repositorio clonado no es una versión "reducida": contiene la misma información que el original. Se puede desconectar por completo de la red y seguir consultando todo el historial, creando ramas, y haciendo commits.
No todos los archivos de un directorio de trabajo deberían
registrarse: archivos temporales, binarios compilados,
configuración local, dependencias descargadas. Un archivo
.gitignore en la raíz del repositorio (o en cualquier
subdirectorio) lista patrones de nombres de archivo que Git debe
ignorar al mostrar el estado o al hacer git add .:
*.log build/ .env
Los archivos ignorados no aparecen en git status como "sin
seguimiento" y no se agregan por accidente al usar comodines. Esto
no afecta a archivos que ya estaban siendo rastreados antes
de agregarlos al .gitignore: para dejar de rastrear un
archivo ya registrado hace falta quitarlo explícitamente con
git rm --cached.