Close

git init

In questa pagina analizzeremo in modo approfondito il comando git init. Entro la fine di questa pagina conoscerai le funzionalità di base e il set esteso di funzionalità di git init. Questa analisi include:

  • opzioni e utilizzo di git init
  • panoramica della directory .git
  • valori di ambiente personalizzati della directory git init
  • git init e git clone a confronto
  • bare repository git init
  • modelli git init

Il comando git init crea un nuovo repository Git. Può essere usato per convertire un progetto esistente e senza versioni in un repository Git o inizializzare un nuovo repository vuoto. La maggior parte degli altri comandi Git non è disponibile al di fuori di un repository inizializzato, quindi questo è di solito il primo comando che eseguirai in un nuovo progetto.

L'esecuzione di git init crea una sottodirectory .git nella directory di lavoro corrente, che contiene tutti i metadati Git necessari per il nuovo repository. Questi metadati includono sottodirectory per oggetti, riferimenti e file modello. Viene creato anche un file HEAD che rimanda al commit attualmente verificato.

A parte la directory .git, nella directory principale del progetto, un progetto esistente rimane inalterato (a differenza di SVN, Git non richiede una sottodirectory .git in ogni sottodirectory).

Per impostazione predefinita, git init inizializzerà la configurazione Git sul percorso della sottodirectory .git . Il percorso della sottodirectory può essere modificato e personalizzato se desideri spostarlo altrove. Puoi impostare la variabile di ambiente $GIT_DIR su un percorso personalizzato; git init inizializzerà i file di configurazione Git su tale percorso. Inoltre, puoi passare l'argomento --separate-git-dir per lo stesso risultato. Un caso d'uso comune per una sottodirectory .git separata serve a conservare i "dotfile" di configurazione del sistema (.bashrc, .vimrc, ecc.) nella home directory mantenendo la cartella file.git altrove.

Branch Git
materiale correlato

Branch Git

Logo di Bitbucket
Scopri la soluzione

Impara a utilizzare Git con Bitbucket Cloud

Utilizzo


Rispetto a SVN, il comando git init è un modo incredibilmente semplice per creare nuovi progetti con controllo della versione. Git non richiede che tu crei alcun repository, importi file ed estragga una copia funzionante. Inoltre, Git non richiede alcun server o privilegio di amministratore preesistente. Tutto quello che devi fare è avviare una cd nella sottodirectory del progetto ed eseguire git init per avere un repository Git completamente funzionante.

git init

Trasforma la directory corrente in un repository Git. Questo aggiunge una sottodirectory .git della directory corrente e consente di iniziare a registrare le revisioni del progetto.

git init <directory>

Crea un repository Git vuoto nella directory specificata. L'esecuzione di questo comando creerà una nuova sottodirectory chiamata .git .

Se hai già eseguito git init in una directory di progetto che contiene una sottodirectory .git, puoi eseguire nuovamente git init in tutta sicurezza nella stessa directory di progetto. Questa operazione non sostituirà alcuna configurazione .git esistente .

git init egit clone a confronto

Una breve nota: git init e git clone possono essere facilmente confusi. Ad alto livello, possono entrambi essere usati per "inizializzare un nuovo repository git". Tuttavia, git clone dipende da git init. git clone viene utilizzato per creare una copia di un repository esistente. Internamente, git clone chiama prima git init per creare un nuovo repository. Quindi, copia i dati dal repository esistente ed estrae un nuovo set di file funzionanti. Scopri di più nella pagina relativa a git clone.

Bare repository --- git init --bare


git init --bare <directory>

Inizializza un repository Git vuoto, ma ometti la directory di lavoro. I repository condivisi devono sempre essere creati con il flag --bare (vedi discussione sotto). Convenzionalmente, i repository inizializzati con il flag --bare terminano con .git. Ad esempio, la versione bare di un repository denominato mio-progetto dovrebbe essere archiviata in una directory denominata mio-progetto.git.

Il flag --bare crea un repository che non ha una directory di lavoro, rendendo impossibile modificare i file e salvare le modifiche in quel repository. Puoi creare un bare repository da cui eseguire git push e git pull, ma non eseguirai mai direttamente il commit in esso. I repository centrali devono sempre essere creati come bare repository perché l'invio di branch in un repository non bare può sovrascrivere le modifiche. Pensa a --bare come a un modo per contrassegnare un repository come struttura di archiviazione, anziché come ambiente di sviluppo. Ciò significa che, per praticamente tutti i flussi di lavoro Git, il repository centrale è bare, mentre i repository locali degli sviluppatori non lo sono.

Repository bare

Il caso d'uso più comune di git init --bare consiste nel creare un repository centrale remoto:

ssh <user>@<host> cd path/above/repo git init --bare my-project.git

Innanzitutto, accedi tramite SSH al server che conterrà il tuo repository centrale. Quindi, accedi al punto in cui desideri archiviare il progetto. Infine, usa il flag --bare per creare un repository di archiviazione centrale. Gli sviluppatori cloneranno quindi mio-progetto.git per creare una copia locale sul proprio computer di sviluppo.

Modelli git init


git init <directory> --template=<template_directory>

Inizializza un nuovo repository Git e copia i file dalla nel repository.

I modelli ti consentono di inizializzare un nuovo repository con una sottodirectory .git predefinita. Puoi configurare un modello in modo che contenga directory e file predefiniti che verranno copiati in una nuova sottodirectory .git . I modelli Git predefiniti di solito risiedono in una directory `/usr/share/git-core/templates` , ma possono trovarsi in un percorso diverso sul computer.

I modelli predefiniti sono un buon riferimento ed esempio di come utilizzare le funzionalità dei modelli. Una potente funzionalità dei modelli che è esposta nei modelli predefiniti è la configurazione di hook Git. Puoi creare un modello con hook Git predefiniti e inizializzare i tuoi nuovi repository Git con hook comuni pronti all'uso. Scopri di più sugli hook Git nella pagina Git Hook.

Configurazione


git init <directory> --template=<template_directory>

Tutte le configurazioni della git init accettano un argomento . Se fornisci la , il comando viene eseguito al suo interno. Se questa directory non esiste, verrà creata. Oltre alle opzioni e alla configurazione già discusse, git init offre altre opzioni da riga di comando. Ecco un elenco completo:

-Q

--QUIET

Stampa solo messaggi, errori e avvisi di "livello critico". Tutti gli altri output sono silenziati.

--BARE

Crea un bare repository. (Vedi la sezione "Bare repository" sopra.)

--TEMPLATE=

Specifica la directory da cui verranno utilizzati i modelli (vedi la sezione "Modelli Git Init" sopra).

--SEPARATE-GIT-DIR=

Crea un file di testo contenente il percorso di . Questo file funge da collegamento alla directory .git . Questo è utile se desideri memorizzare la directory .git in una posizione o in un'unità separata dai file di lavoro del tuo progetto. I casi d'uso comuni per --separate-git-dir includono:

  • serve a conservare i "dotfile" di configurazione del sistema (.bashrc, .vimrc, ecc.) nella home directory mantenendo la cartella file.git altrove
  • La tua cronologia Git è cresciuta molto in termini di dimensioni del disco e devi spostarla altrove su un'unità separata ad alta capacità
  • Vuoi conservare un progetto Git in una directory accessibile al pubblico come `www:root `

Puoi chiamare git init --separate-git-dir su un repository esistente e .git dir verrà spostato nel percorso specificato.

--SHARED[=(FALSE|TRUE|UMASK|GROUP|ALL|WORLD|EVERYBODY|0XXX)]

Imposta le autorizzazioni di accesso per il nuovo repository. Questo specifica quali utenti e gruppi che utilizzano autorizzazioni a livello Unix sono autorizzati eseguire il push/pull al repository.

Esempi


Creare un nuovo repository git per un codebase esistente

cd /path/to/code \ 
git init \ 
git add . \ 
git commit

Creare un nuovo bare repository

git init --bare /path/to/repo.git

Creare un modello git init e inizializzare un nuovo repository git dal modello

mkdir -p /path/to/template \ 
echo "Hello World" >> /absolute/path/to/template/README \
git init /new/repo/path --template=/absolute/path/to/template \ 
cd /new/repo/path \ 
cat /new/repo/path/README

Condividi l'articolo
Argomento successivo

Letture consigliate

Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.

Le persone collaborano utilizzando una parete piena di strumenti

Blog di Bitbucket

Illustrazione su Devops

Percorso di apprendimento DevOps

Funzione Demo Den per demo con esperti Atlassian

Come Bitbucket Cloud funziona con Atlassian Open DevOps

Iscriviti alla nostra newsletter DevOps

Thank you for signing up