lab 22 Al Interior de Git:
El directorio .git/h1>
Metas
- Aprender sobre la estructura de el directorio
.git
.
El Directorio .git
01
.git
..git
01Es tiempo de explorar un poco. Primero, iniciando desde la raíz del directorio de su proyecto …
Ejecute:
ls -C .git
Salida:
$ ls -C .git COMMIT_EDITMSG config index objects HEAD description info refs ORIG_HEAD hooks logs
Éste es el directorio mágico donde son almacenadas todas las “cosas” de git. Echemos un vistazo en el directorio de objetos
El Almacenamiento de Objetos 02
Ejecute:
ls -C .git/objects
Salida:
$ ls -C .git/objects 09 24 30 43 69 78 9c b8 e4 pack 11 27 3c 49 6b 97 af c4 e7 1b 28 40 59 76 9a b5 d2 info
Debería ver un monton de directorios con nombres de dos letras. Los nombres de los directorios son las dos primeras letras del hash sha1 del objeto almacenado en git.
A Profundidad en el Almacenamiento de Objetos 03
Ejecute:
ls -C .git/objects/<dir>
Salida:
$ ls -C .git/objects/09 6b74c56bfc6b40e754fc0725b8c70b2038b91e 9fb6f9d3a104feb32fcac22354c4d0e8a182c1
Mire en alguno de los directorios de dos letras. Verá algunos archivos con nombres de 38 caracteres. Estos son los archivos que contienen los objetos almacenados en git. Estos archivos están compresos y codificados, así que no será de mucha ayuda el mirar directamente en el contenido, pero daremos un vistazo más a detalle.
Archivo de Configuración 04
Ejecute:
cat .git/config
Salida:
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true [user] name = Jim Weirich email = jim (at) edgecase.com
Este es el archivo de configuración específico del proyecto. Las entradas en la configuración serán sobrepuestas con las configuraciones que se encuentran en el archivo .gitconfig
en su directorio raíz, al menos para este proyecto.
Ramas y Etiquetas 05
Ejecute:
ls .git/refs ls .git/refs/heads ls .git/refs/tags cat .git/refs/tags/v1
Salida:
$ ls .git/refs heads tags $ ls .git/refs/heads master $ ls .git/refs/tags v1 v1-beta $ cat .git/refs/tags/v1 40543214b69016a1f079a0d95ff88cc7421e9b54
Podría reconocer los archivos en el subdirectorio "tags". Cada archivo corresponde a una etiqueta que se creó anteriormente con el comando git tag
. Su contenido es sólo el hash del Commit atado a la etiqueta.
Algo similar sucede con los directorios "heads", pero ellos son usado con las ramificaciones en vez de las etiquetas. En este momento sólo tenemos una rama, así que veremos "master" en este directorio.
El Archivo HEAD 06
Ejecute:
cat .git/HEAD
Salida:
$ cat .git/HEAD ref: refs/heads/master
El archivo HEAD contiene una referencia a la ramificación actual. Esto debería ser una referencia a "master" en este punto.