Seleziona una pagina
Cosa contiene questa pagina.

Questa pagina contiene gli appunti sintetici del Corso di git che è stato fatto da Francesco Allersten di ConoscereLinux nell’ambito dei Corsi interni al LUG il 6/6/2011. Questa pagina non vuole essere una guida esaustiva, ma una carrellata sintetica sui comandi più utilizzati di git.

Cos’è git

Git è un sistema di controllo di versione distribuito ideato da Linus Torvalds. Il progetto di Git è la sintesi dell’esperienza di Torvalds nel mantenere un grande progetto di sviluppo distribuito, della sua intima conoscenza delle prestazioni del file system, e di un bisogno urgente di produrre un sistema soddisfacente in poco tempo<ref>Da Wikipedia:Git_(software) licenza Creative Commons Attribuzione-Condividi allo stesso modo.</ref>.

A differenza degli altri VCS (Subversion e compagnia), git considera i propri dati più come una serie di istantanee (snapshot) di un mini filesystem. Ogni volta che si fa un commit, o si salva lo stato del proprio progetto in Git, esso fondamentalmente fa un’immagine di tutti i file in quel momento, salvando un riferimento allo snapshot. La maggior parte delle operazioni in Git, necessitano solo di file e risorse locali per operare. Qualsiasi cosa in Git è controllata, tramite checksum, prima di essere salvata ed è referenziata da un checksum. Questo significa che è impossibile cambiare il contenuto di qualsiasi file o directory senza che Git lo sappia<ref>Sintesi da Pro Git licenza Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo</ref>.

Inizializziamo un progetto e configuriamo git

Per prima cosa creiamo un progetto di prova. Creiamo la cartella foo all’interno della quale mettiamo 3 file: file1, file2, file3. Spostiamoci nella cartella foo e lanciamo il comando:

git init

In questo modo git viene inizializzato e viene creata la cartella .git che conterrà tutto quello che serve a git per funzionare e per gestire il tuo progetto.

foo
|-- file1
|-- file2
|-- file3
`-- .git
    |-- 
    |--
    

Configuriamo git

La prima cosa da fare è configurare git. Possiamo decidere di configurare alcune opzioni in modo globale affinché siano disponibili per tutti i nostri progetti git conservandone altre solo per i progetti locali. Ecco di seguito le principali configurazioni.

git config user.nome “Mario Rossi”
Imposta il nome utilizzato da git per assegnare le modifiche e i commit
git config user.email “mario.rossi@lug.42019.it”
Imposta l’email utilizzata da git per assegnare le modifiche e i commit
git config –global core.editor vim
Imposta vim come editor predefinito. Se non diversamente specificato questa opzione sarà assegnata globalmente a tutti i progetti.
git config –global color.diff always
Imposta il colore nell’output di git. Se non diversamente specificato questa opzione sarà assegnata globalmente a tutti i progetti.
git config –list
Mostra la lista delle proprie configurazioni

Eventualmente l’opzione –global può essere aggiunta anche alle variabili user.nome e user.email per fare in modo che siano valide a livello globale.

Man pages di git

Lanciando git senza opzioni otteniamo la lista dei comandi di git. Il manuale di ciascun comando può essere richiamato con

man git-[nome_comando]

Modifiche e commit

Lanciamo il comando

git add .

per aggiungere tutto il progetto sotto il controllo di git, poi iniziamo a fare alcune modifiche ai file. Di seguito puoi trovare i comandi base per “salvare” queste modifiche con un commit e per studiare i log.

Comandi fondamentali per gestire le modifiche

Vengono di seguito riportati i comandi fondamentali di git<ref>Su Debian l’auto completamento dei comandi di git è disabilitato. Per abilitarlo seguire la guida Abilitare auto completamento delle opzioni dei comandi</ref>

git commit
Finalizza le modifiche su git
git log
Mostra la lista dei commit. E possibile aggiungere il flag -p per avere nell’output la lista delle modifiche effettuate
git status
Permette di vedere lo stato del tuo progetto

Branch

Repository git