Inizio
/
Strumenti del sito avanzati
/
Git
/
Come si struttura in GIT il contenuto della repository?

Come si struttura in GIT il contenuto della repository?

Una directory .git ha una struttura simile alla seguente:

  • objects/ folder

In questa directory, vengono archiviati i dati dei tuoi oggetti Git: tutto il contenuto dei file che hai mai registrato, i tuoi commit, gli alberi e gli oggetti tag.

    • objects/[0-9a-f][0-9a-f] folders

Un oggetto appena creato viene archiviato nel proprio file. Gli oggetti vengono posizionati su 256 sottodirectory utilizzando i primi due caratteri del nome dell’oggetto SHA1 per mantenere il numero di voci della directory negli oggetti stessi su un numero gestibile. Gli oggetti trovati qui sono spesso chiamati oggetti sfusi o sfusi.

    • objects/pack folder

I file che memorizzano molti oggetti in forma compressa, insieme ai file di indice per consentire loro di accedere in modo casuale, si trovano in questa directory.

    • objects/info folder

Ulteriori informazioni sull’oggetto memorizzato si trovano in questa directory.

  • refs folder

I riferimenti sono memorizzati in sottodirectory di questa directory. Il comando git prune sa preservare gli oggetti raggiungibili dai ref trovati in questa directory e nelle sue sottodirectory.

    • refs/heads/ folder

Contiene oggetti commit.

    • refs/tags/ folder

Contiene qualsiasi nome di oggetto.

    • refs/remotes/ folder

Contiene oggetti commit di rami copiati da un repository remoto.

  • packed-refs file

Il file è composto da intestazioni e tag compressi. È utile per un accesso efficiente al repository.

  • HEAD file

Questo file contiene un riferimento al ramo in cui ci si trova attualmente. Questo dice a Git cosa usare come genitore del prossimo commit.

  • config file

Questo è il file di configurazione principale di Git. Mantiene opzioni Git specifiche per il tuo progetto, come comandi, configurazioni push, rami di tracciamento e altro. La configurazione verrà caricata prima da questo file, quindi da un file ~/.gitconfigfile e quindi da un file/etc/gitconfig, se presenti.

  • branches

Un vecchio modo per memorizzare le scorciatoie da utilizzare per specificare un URL per git fetch, git pull e git push. Questo meccanismo è un’eredità ed è probabile che non si trovi nei repository moderni.

  • hooks folder

Questa directory contiene script di shell che vengono richiamati dopo i corrispondenti comandi Git. Ad esempio, dopo aver eseguito un commit, Git tenterà di eseguire lo script post-commit.

  • index file

L’indice GIT viene utilizzato come area di gestione temporanea tra la directory di lavoro e il repository. Puoi utilizzare l’indice per creare una serie di modifiche che desideri impegnare insieme. Quando si crea un commit, ciò che è commit è ciò che è attualmente nell’indice, non ciò che si trova nella directory di lavoro. È un file binario contenente un elenco ordinato di nomi di percorso, ciascuno con autorizzazioni e SHA-1 di un oggetto blob.

  • info folder

Ulteriori informazioni sul repository sono registrate in questa directory.

  • remotes folder

Questa cartella contiene shorthands per URL e nomi di default predefiniti da utilizzare quando si interagisce con repository remoti tramite i comandi git fetch, git pull e git push. Questo meccanismo è un’eredità ed è probabile che non si trovi nei repository moderni.

  • logs folder

Memorizza le modifiche apportate ai ref nel repository.

    • logs/refs/heads/ folder

Registra tutte le modifiche apportate ai diversi suggerimenti di diramazione.

    • logs/refs/tags/ folder

Registra tutte le modifiche apportate ai diversi tag.

  • modules folder

Contiene i repository git dei sottomoduli.

  • worktrees folder

Contiene dati amministrativi per alberi di lavoro collegati. Ogni sottodirectory contiene la parte relativa all’albero di lavoro di un albero di lavoro collegato.

Condividi questo articolo