04. Creare e configurare un repository
4.1 git init — inizializzare un repository
Section titled “4.1 git init — inizializzare un repository”git init # nella directory correntegit init /path/to/project # in una directory specificaIl comando crea la sottodirectory .git con tutti i metadati (branch di default, oggetti, reference, template). Nessun altro file viene modificato. La maggior parte dei comandi Git funziona solo all’interno di un repository inizializzato.
4.2 git config — configurare Git
Section titled “4.2 git config — configurare Git”git config imposta valori di default, validi a livello globale (--global, per tutti i repository della macchina) o locale (--local, solo per il repository corrente).
Uso più comune: impostare identità e email usate nei commit.
# identità globale (personale)git config --global user.email "me@example.com"git config --global user.name "Meme The Great"
# identità locale diversa per il repository del proprio datore di lavorocd company-projectgit config --local user.email "john@company.com"git config --local user.name "John Smith"I valori locali prevalgono su quelli globali: così ogni repository userà automaticamente l’identità corretta.
4.3 git clone — copiare un repository remoto
Section titled “4.3 git clone — copiare un repository remoto”git clone <URL> # nella directory correntegit clone <URL> <DIRECTORY> # specificando il nome della cartella localeLa clonazione è un’operazione una tantum: dopo aver creato la copia locale non serve più clonare (per recuperare le modifiche altrui si usa git fetch / git pull, vedi sezione 11).
L’URL può usare diversi protocolli:
- SSH:
ssh://[user@]host.xz[:port]/path/to/repo.git/ - HTTP(S):
http[s]://host.xz[:port]/path/to/repo.git/ - GIT:
git://host.xz[:port]/path/to/repo.git/
Esempi con GitHub:
- clone di un repository pubblico via HTTPS (
git clone https://github.com/php/php-src.git): accesso in sola lettura; - clone di un repository privato via HTTPS: viene richiesta autenticazione, con accesso in scrittura;
- clone di un repository privato via SSH (richiede chiave pubblica configurata): accesso in scrittura.
Al termine, git clone crea la directory locale e il remote origin, usato dai comandi successivi per inviare/ricevere modifiche.
Opzioni utili:
git clone --depth=10 <URL> # shallow clone: solo gli ultimi 10 commitgit clone --single-branch --branch <NAME> <URL> # solo uno specifico branch