- Explicación detallada del directorio
.git que se crea al ejecutar git init
- El directorio
.git incluye varios archivos y carpetas como config, HEAD, hooks, objects y refs
- El archivo de texto
config incluye la configuración de git del repositorio actual y ajustes básicos como el autor y el modo de archivos
- El archivo
HEAD contiene la cabecera actual del repositorio que apunta a la rama predeterminada. Dependiendo de cuál se haya definido como rama predeterminada, puede ser master o main
- El directorio
hooks incluye todos los scripts que pueden ejecutarse antes o después de las operaciones de git
- El directorio
objects contiene los datos de los archivos y commits del repositorio
- El directorio
refs guarda referencias o punteros que apuntan a ramas y etiquetas
- Cuando se agrega un archivo al repositorio, se modifica el archivo
index y se agregan una nueva carpeta y un nuevo archivo al directorio objects
- El nuevo archivo dentro del directorio
objects incluye el tipo, el tamaño y los datos del archivo agregado, y su nombre se toma del SHA-1 del contenido
- Cuando se hace commit de un archivo, ocurren varios cambios, como la creación de un nuevo archivo llamado
COMMIT_EDITMSG que contiene el mensaje del commit y la adición de un nuevo objeto al directorio objects
- En git, crear una rama es un proceso simple que consiste en agregar un nuevo archivo en el directorio
refs/heads con el nombre de la rama y el ID del commit más reciente
- Hacer checkout de una rama implica actualizar el archivo
.git/HEAD para que apunte a la rama seleccionada
- La fusión de ramas puede realizarse de tres maneras:
fast forward merge, rebase merge o creando un merge commit separado
- Cuando se hace push del repositorio, todo lo que está en el directorio
objects y todas las ramas y etiquetas bajo refs que se hayan enviado explícitamente se transfieren a otro repositorio git
1 comentarios