|
Dimensione: 5117
Commento: Revisionati passaggi e aggiornati i messaggi in output
|
Dimensione: 5264
Commento: +revisione; +correzioni; +24.04
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 4: | Linea 4: |
| <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=590616"; rilasci="22.04")>> | <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=590616"; rilasci="24.04 22.04")>> |
| Linea 8: | Linea 8: |
| '''Git''' è un [[http://it.wikipedia.org/wiki/Controllo_versione|CVS]] ('''C'''ontrol '''V'''ersion '''S'''ystem). Gli aspetti importanti di un CSV si possono riassumere nel: | '''Git''' è un sistema di controllo di versione distribuito ('''DVCS''' - '''D'''istributed '''V'''ersion '''C'''ontrol '''S'''ystem). Gli aspetti principali di un sistema di controllo versione riguardano: |
| Linea 14: | Linea 14: |
| Rispetto a programmi come [[Programmazione/Cvs|CVS]], [[Programmazione/Subversion|Subversion]] ma più similmente a [[http://mercurial.selenic.com|Mercurial]], [[Programmazione/Bazaar|Baazar]], '''Git''' è caratterizzato da un sistema di controllo di versione localizzato, cioè utilizzabile con repository locali invece che remoti. Programmi come '''Subversion''' adottano un repository centrale, che materialmente è il posto (server, servizio web) in cui risiede il progetto. Gli utenti sincronizzano il lavoro con questo repository e quando devono salvare delle modifiche al progetto (''commit''), le salvano direttamente sul repository centralizzato. | A differenza di programmi come [[Programmazione/Cvs|CVS]] o [[Programmazione/Subversion|Subversion]], e in modo simile a [[http://mercurial.selenic.com|Mercurial]] o [[Programmazione/Bazaar|Baazar]], '''Git''' è caratterizzato da una gestione localizzata, ovvero è utilizzabile con repository locali invece che esclusivamente remoti. Sistemi come '''Subversion''' adottano un repository centrale (server o servizio web) in cui risiede il progetto. In tali sistemi, la sincronizzazione del lavoro e il salvataggio delle modifiche (''commit'') avvengono direttamente sul repository centralizzato. |
| Linea 16: | Linea 16: |
| '''Git''' invece lavora in locale. Non esiste un repository centralizzato nel modo che si intende in '''Subversion''' et similia. Ogni cartella di lavoro è un repository autosufficiente. Commit, ricerca log e molte altre azioni vengono eseguite in locale, senza l'appoggio di un server esterno. Quando si rende necessario è possibile sincronizzarsi con altri repository (server centrale, pc in rete, ecc..). Questo comporta ovvi vantaggi in termini di flessibilità. | '''Git''' lavora invece in locale. Ogni directory di lavoro è un repository autosufficiente. Operazioni come commit, consultazione dei log e molte altre azioni vengono eseguite localmente, senza necessità di un server esterno. La sincronizzazione con altri repository (server centrale, altri PC in rete, ecc.) avviene solo quando necessario. Ciò garantisce maggiore flessibilità e velocità d'esecuzione. |
| Linea 19: | Linea 19: |
| = Installazione/Configurazione base = | = Installazione = |
| Linea 21: | Linea 21: |
| 0. Per installare '''Git''' digitare in un [[AmministrazioneSistema/RigaDiComando|terminale]]:{{{ sudo apt-get install git |
[[AmministrazioneSistema/InstallareProgrammi/Apt|Installare]] '''Git''' è necessario: Digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ sudo apt install git |
| Linea 24: | Linea 26: |
| 0. Impostare '''nome utente''' e '''indirizzo e-mail''' che si vogliono utilizzare per identificarsi nei progetti:{{{ | <<Anchor(configurazione)>> = Configurazione base = Dopo l'installazione è necessario definire l'identità dell'utente per firmare correttamente i commit. == Definizione utente == Impostare il '''nome utente''' e l''''indirizzo e-mail''' da utilizzare per l'identificazione nei progetti:{{{ |
| Linea 27: | Linea 37: |
| }}}avendo cura di sostituire le diciture NOME_UTENTE e INDIRIZZO_E-MAIL col proprio nome utente e indirizzo e-mail. In questa guida viene preso ad esempio il generico utente '''Mario Rossi''' con indirizzo email '''`mario.rossi@mail.com`''', pertanto i precedenti comandi divengono:{{{ | }}} sostituendo le diciture NOME_UTENTE e INDIRIZZO_E-MAIL con i dati corretti. In questa guida viene preso come esempio l'utente '''Mario Rossi''' con indirizzo email '''`mario.rossi@mail.com`'''; in questo caso i comandi diventano:{{{ |
| Linea 31: | Linea 41: |
| {{{#!wiki note È possibile modificare questi dati per un singolo repository omettendo il flag '''--global.'''}}} 0. Consigliato ma non obbligatorio, impostare l'alias '''lg''' per una versione personalizzata del comando '''log''' al fine di migliorarne la leggibilità:{{{ |
{{{#!wiki note È possibile modificare questi dati per un singolo repository omettendo l'opzione '''--global.''' }}} È consigliato impostare l'alias '''lg''' per una versione personalizzata del comando '''log''', al fine di migliorarne la leggibilità:{{{ |
| Linea 37: | Linea 49: |
| <<Anchor(creare)>> | |
| Linea 39: | Linea 52: |
| Viene qui mostrato come creare un '''nuovo progetto''' o come importare (clonare) un '''progetto esistente'''. | Per creare un '''nuovo progetto''' o per importare (clonare) un '''progetto esistente''', vengono descritte di seguito le procedure. |
| Linea 43: | Linea 56: |
| <<Anchor(creare)>> 0. Creare la cartella `gitproject` nella propria '''Home''' che conterrà il progetto e spostarsi al suo interno:{{{ mkdir ~/gitproject cd ~/gitproject }}} 0. Per inizializzare un repository vuoto su cui poter incominciare a lavorare, digitare:{{{ git init }}}verrà restituito un messaggio del tipo{{{ Inizializzato un repository Git in /home/mario/gitproject/.git/ }}}All'interno di `~/gitproject` sarà ora presente la cartella `.git` che contiene le informazioni del repository. Questa cartella è molto importante perché è l'unica che contiene tutti i dati necessari. (In '''Subversion''' ad es. viene creata una cartella .svn in ogni sottocartella del progetto). |
0. [[AmministrazioneSistema/ComandiBase#mkdir|Creare]] la directory `gitproject` nella propria cartella '''Home''', digitare nel [[AmministrazioneSistema/Terminale|terminale]] i seguenti comandi:{{{ mkdir ~/gitproject }}} 0. [[AmministrazioneSistema/ComandiBase#cd|Spostarsi]] all'interno della cartella creata:{{{ cd ~/gitproject }}} 0. Per inizializzare un repository vuoto, digitare:{{{ git init }}} Verrà restituito un messaggio simile al seguente:{{{ Inizializzato un repository Git in /home/mario/gitproject/.git/ }}} All'interno di `~/gitproject` sarà presente la cartella nascosta `.git` contenente tutte le informazioni del repository. Questa cartella è fondamentale poiché contiene l'intera cronologia e i dati di controllo. |
| Linea 57: | Linea 71: |
| git clone PERCORSO/PROGETTO }}}Verrà creata nella propria '''Home''' una cartella col nome del progetto in cui saranno copiati i contenuti. |
git clone PERCORSO/PROGETTO }}}Verrà creata nella propria '''Home''' una cartella col nome del progetto in cui saranno copiati i contenuti. |
| Linea 61: | Linea 75: |
| git clone PERCORSO/PROGETTO PERCORSO/LOCALE }}} |
git clone PERCORSO/PROGETTO PERCORSO/LOCALE }}} |
| Linea 70: | Linea 84: |
| '''Git''' prevede una gestione molto efficace dei '''branch''' (rami di sviluppo). Consultare la [[Programmazione/Git/Branch|seguente pagina]]. | '''Git''' permette una gestione avanzata dei '''branch''' (rami di sviluppo). Consultare la [[Programmazione/Git/Branch|seguente pagina]]. |
| Linea 74: | Linea 88: |
| Attraverso gli strumenti '''fetch''', '''pull''', '''push''' è possibile sincronizzare il lavoro svolto da utenti diversi utenti. Consultare la [[Programmazione/Git/RepositoryRemoti|seguente pagina]]. | Tramite gli strumenti '''fetch''', '''pull''' e '''push''' è possibile sincronizzare il lavoro tra diversi utenti. Consultare la [[Programmazione/Git/RepositoryRemoti|seguente pagina]]. |
| Linea 83: | Linea 97: |
| CategoryProgrammazione CategoryDaRevisionare | CategoryProgrammazione |
Guida verificata con Ubuntu: 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Git è un sistema di controllo di versione distribuito (DVCS - Distributed Version Control System). Gli aspetti principali di un sistema di controllo versione riguardano:
- tracciare la storia di un progetto e poter lavorare con le versioni precedenti;
- permettere la collaborazione di più persone allo stesso progetto;
- organizzare e semplificare l'andamento del progetto.
A differenza di programmi come CVS o Subversion, e in modo simile a Mercurial o Baazar, Git è caratterizzato da una gestione localizzata, ovvero è utilizzabile con repository locali invece che esclusivamente remoti. Sistemi come Subversion adottano un repository centrale (server o servizio web) in cui risiede il progetto. In tali sistemi, la sincronizzazione del lavoro e il salvataggio delle modifiche (commit) avvengono direttamente sul repository centralizzato.
Git lavora invece in locale. Ogni directory di lavoro è un repository autosufficiente. Operazioni come commit, consultazione dei log e molte altre azioni vengono eseguite localmente, senza necessità di un server esterno. La sincronizzazione con altri repository (server centrale, altri PC in rete, ecc.) avviene solo quando necessario. Ciò garantisce maggiore flessibilità e velocità d'esecuzione.
Installazione
Installare Git è necessario:
Digitare in un terminale il seguente comando:
sudo apt install git
Configurazione base
Dopo l'installazione è necessario definire l'identità dell'utente per firmare correttamente i commit.
Definizione utente
Impostare il nome utente e l'indirizzo e-mail da utilizzare per l'identificazione nei progetti:
git config --global user.name "NOME_UTENTE" git config --global user.email INDIRIZZO_E-MAIL
sostituendo le diciture NOME_UTENTE e INDIRIZZO_E-MAIL con i dati corretti. In questa guida viene preso come esempio l'utente Mario Rossi con indirizzo email mario.rossi@mail.com; in questo caso i comandi diventano:
git config --global user.name "Mario Rossi" git config --global user.email mario.rossi@mail.com
È possibile modificare questi dati per un singolo repository omettendo l'opzione --global.
È consigliato impostare l'alias lg per una versione personalizzata del comando log, al fine di migliorarne la leggibilità:
git config --global alias.lg "log --pretty=format:'%C(yellow)%h%Cred%d%Creset - %C(cyan)%an %Creset: %s %Cgreen(%cr)' --decorate --graph --all --abbrev-commit"
Creazione repository
Per creare un nuovo progetto o per importare (clonare) un progetto esistente, vengono descritte di seguito le procedure.
Creazione nuovo repository
Creare la directory gitproject nella propria cartella Home, digitare nel terminale i seguenti comandi:
mkdir ~/gitproject
Spostarsi all'interno della cartella creata:
cd ~/gitproject
Per inizializzare un repository vuoto, digitare:
git init
Verrà restituito un messaggio simile al seguente:
Inizializzato un repository Git in /home/mario/gitproject/.git/
All'interno di ~/gitproject sarà presente la cartella nascosta .git contenente tutte le informazioni del repository. Questa cartella è fondamentale poiché contiene l'intera cronologia e i dati di controllo.
Clonazione repository
Per scaricare un progetto già esistente su di un server, il comando da eseguire è:
git clone PERCORSO/PROGETTO
Verrà creata nella propria Home una cartella col nome del progetto in cui saranno copiati i contenuti.
Se invece si preferisce clonare il repository in una cartella specifica, basta aggiungere il percorso al comando:
git clone PERCORSO/PROGETTO PERCORSO/LOCALE
Commit
Attraverso il commit è possibile aggiungere, rimuovere e modificare i file del repository. Consultare la seguente pagina.
Branching
Git permette una gestione avanzata dei branch (rami di sviluppo). Consultare la seguente pagina.
Repository remoti
Tramite gli strumenti fetch, pull e push è possibile sincronizzare il lavoro tra diversi utenti. Consultare la seguente pagina.
