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. |
Indice
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