Tu primer repositorio


Por lo general llegas hasta aquí de dos formas. O ya tienes una carpeta de proyecto, un weather-app que vienes construyendo localmente, y quieres que Git empiece a registrar su historia. O alguien más ya construyó el proyecto, este vive en GitHub, y quieres tener tu propia copia de trabajo en tu máquina. Ambos casos empiezan con tres comandos pequeños, y al terminar este capítulo ya habrás usado los tres de verdad. Pero antes, una comprobación que toma diez segundos: asegurarte de que Git esté instalado en tu máquina.
¿Tienes Git instalado?
Todo lo que verás en este manual ocurre en la terminal, así que el primer paso es abrir una. Una terminal es una aplicación donde escribes comandos como texto y los programas te responden en texto. Ya la tienes en tu computadora:
- macOS: la aplicación se llama Terminal. Presiona Cmd+Espacio, escribe "terminal" y presiona Enter.
- Windows: por ahora abre PowerShell (busca "powershell" en el menú Inicio). Al instalar Git más abajo también se agrega Git Bash, una terminal hecha justamente para esto, y cualquiera de las dos ejecuta los mismos comandos de Git.
- Linux: busca una aplicación llamada Terminal o Consola; Ctrl+Alt+T la abre en muchas distribuciones.
Git en sí mismo es un programa de línea de comandos: no tiene ventana propia, y lo usas escribiendo comandos que empiezan con la palabra git y leyendo lo que te responde. Así también debes leer cada bloque de código en este manual: la línea que empieza con $ es el comando que tú escribes (sin el $), y las líneas debajo son la respuesta de Git.
Entonces, la comprobación. Escribe esto en tu terminal y presiona Enter:
$ git --version
git version 2.45.1Si te devuelve un número de versión, significa que Git está instalado y listo para usar. Es probable que tu número sea distinto al de este ejemplo, y eso está bien. Si en cambio ves "command not found" o "git is not recognized", Git todavía no está en tu máquina, e instalarlo es una tarea que solo harás una vez:
- macOS: al ejecutar
git --versionnormalmente se abre un diálogo que te ofrece instalar las Command Line Tools de Apple. Acéptalo, y macOS instalará Git por ti. - Windows: descarga Git for Windows desde git-scm.com/downloads y ejecuta el instalador. Las opciones predeterminadas son razonables en todos los casos, y de paso se instala Git Bash.
- Linux: instala el paquete
gitcon el gestor de paquetes de tu distribución, por ejemplosudo apt install giten Ubuntu y Debian.
Cuando termine la instalación, cierra tu terminal, abre una nueva y vuelve a ejecutar git --version. Si ves un número de versión, terminaste la configuración para siempre; nada más en el resto de este manual requiere instalación.
git --version te dice si está en tu máquina: un número de versión significa que estás listo, y "command not found" significa que hay que instalarlo desde git-scm.com o el instalador de tu sistema. Esto solo lo haces una vez. La configuración es la parte menos divertida de cualquier manual, ¡así que felicidades por haberla superado! Convertir una carpeta en un repositorio
Abre una terminal y muévete a tu carpeta de proyecto con cd (abreviatura de "change directory"), y luego ejecuta un solo comando, git init:
$ cd weather-app
$ git init
Initialized empty Git repository in /Users/mara/projects/weather-app/.git/Esa carpeta ahora es un repositorio: un proyecto que Git vigila, listo para registrar instantáneas de él mientras trabajas. git init hace exactamente lo mismo cada vez que lo ejecutas. Busca una carpeta oculta llamada .git, la crea si no existe, y desde ese momento la carpeta queda bajo la vigilancia de Git.
La rama predeterminada de un repositorio nuevo se llama main. Si te encuentras con un tutorial más antiguo, un repositorio más viejo, o un curso grabado hace algunos años, verás que se usa master para exactamente lo mismo: es la misma rama inicial con un nombre anterior. Este manual siempre usa main.
¿Qué es una rama?
Una rama es una línea de historia separada donde pueden aterrizar tus commits, y main es la que trae todo repositorio nuevo desde el inicio. Ramas explica cómo crearlas y cómo cambiar entre ellas.
git init convierte cualquier carpeta en un repositorio de Git, listo para que Git empiece a rastrearla. Ejecútalo una vez dentro de una carpeta de proyecto y ya quedas listo, y ejecutarlo de nuevo más adelante no hace ningún daño. Los repositorios nuevos usan por defecto una rama llamada main, aunque los más antiguos que encuentres por ahí suelen llamarla master para lo mismo. Decirle a Git quién eres
Antes de tu primer commit, Git necesita saber quién lo está haciendo. Configura dos valores una sola vez, y Git los recordará para cada commit que hagas en esta máquina:
$ git config --global user.name "Mara Chen"
$ git config --global user.email "[email protected]"Cada commit que crees quedará marcado con ese nombre y ese correo. Si te saltas este paso, Git recurre a algo que adivina a partir del nombre de usuario y el nombre del equipo, así que tus commits terminan con una identidad que nunca elegiste.
Configura tu nombre y tu correo antes de tu primer commit. Si haces el commit primero y configuras esto después, el error queda grabado en el historial de ese commit. Peor aún, algunos servicios (GitHub incluido) relacionan los commits con tu cuenta a partir del correo, así que un commit hecho con la dirección equivocada o una adivinada aparece como el trabajo de un desconocido anónimo en vez del tuyo.
git config --global user.name y git config --global user.email configuran el nombre y el correo que Git marca en cada commit que haces. Configúralos antes de tu primer commit, porque un commit hecho antes de configurar tu correo queda atribuido a una identidad adivinada, y un servicio como GitHub puede incluso no relacionarlo con tu cuenta. Hazlo una vez y todo repositorio en tu máquina lo recordará. Copiar un proyecto existente con git clone
A veces el proyecto ya existe en otro lugar, y lo que quieres es tener una copia de trabajo en tu máquina. git clone hace eso en un solo comando:
$ git clone https://github.com/octocat/Hello-World.git
Cloning into 'Hello-World'...
remote: Enumerating objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.Git crea una carpeta nueva llamada Hello-World, descarga en ella todo el historial del proyecto y coloca sus archivos en la carpeta para que puedas empezar a leer o editar de inmediato. No se necesita ningún paso adicional de git init. Clonar configura el repositorio por ti como parte de la descarga.
git clone <url> descarga el repositorio de otra persona, historial completo incluido, en una carpeta nueva con el nombre del proyecto. Úsalo cuando el proyecto ya existe en algún lugar; usa git init cuando empiezas uno desde cero. Cuando termina de clonar, tienes una copia de trabajo completa, lista para revisar o para agregarle cosas. Qué hay dentro de la carpeta oculta .git
Todo repositorio, sin importar si lo creaste con git init o con git clone, tiene una carpeta oculta llamada .git en su raíz. Está oculta por defecto, así que pídele a la terminal el listado completo con ls -a (ls lista el contenido de una carpeta, y -a incluye las entradas ocultas) para verla junto a los archivos normales de tu proyecto:
$ ls -a
. .. .git README.md srcEsa carpeta es el verdadero repositorio. Ahí se guarda cada commit que has hecho, tus ramas, y la configuración de la sección anterior. Si borras la carpeta .git, el proyecto pierde todo su historial, y vuelve a ser una carpeta común que Git ya no rastrea. Todo lo demás en el proyecto es una copia de trabajo de lo que contiene .git.
.git en su raíz, y esa carpeta es el verdadero repositorio: ahí vive todo tu historial y su configuración. Ejecuta ls -a dentro de un proyecto para verla, ya que está oculta por defecto. Nunca la borres a menos que realmente quieras eliminar todo el historial del proyecto, porque borrarla convierte la carpeta en una carpeta común que Git ya no rastrea. Si los términos repositorio y commit todavía se sienten confusos, Qué es Git explica el modelo mental sobre el que se construyen estos comandos, y el Glosario tiene una definición breve para cada término de vocabulario de este capítulo. Una vez que tengas tu identidad configurada y un repositorio en el que trabajar, El ciclo del commit explica el ciclo diario de editar, preparar y confirmar que vas a usar constantemente a partir de ahora.

