|
Dimensione: 50
Commento:
|
Dimensione: 5953
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| Inserire una descrizione per Programmazione/Git. | ## page was renamed from jepessen/Prove/Git <<BR>> <<Indice(depth=1)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=590616"; rilasci="24.04 22.04")>> = Introduzione = '''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: * 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 [[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. '''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. <<Anchor(alias)>> = Installazione = [[AmministrazioneSistema/InstallareProgrammi/Apt|Installare]] '''Git''' è necessario: Digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ sudo apt install git }}} <<Anchor(configurazione)>> = Configurazione base = Dopo l'installazione è necessario definire l'identità dell'utente per firmare correttamente i commit. == Identificazione utente nei progetti == Impostare il '''nome utente''' e l''''indirizzo e-mail''' da utilizzare globalmente per l'identificazione nei progetti Git, digitare nel [[AmministrazioneSistema/Terminale|terminale]] questi comandi:{{{ 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 propri dati. Esempio per l'utente '''Mario Rossi''':{{{ git config --global user.name "Mario Rossi" git config --global user.email mario.rossi@mail.com }}} {{{#!wiki note Le configurazioni globali vengono salvate nel file nascosto `.gitconfig` nella propria directory '''Home'''. Per impostare dati specifici solo per un determinato repository, è sufficiente omettere l'opzione '''--global''' mentre ci si trova all'interno della cartella del progetto. }}} == Impostazione dell'alias lg == Il monitoraggio dell'evoluzione del progetto avviene tramite la consultazione dello storico dei commit. Il comando principale è `git log`, tuttavia, per facilitare la lettura dei rami e delle modifiche, è prassi comune impostare un alias che fornisca una rappresentazione grafica e sintetica. È 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" }}} <<Anchor(cronologia)>> = Visualizzazione della cronologia = 0. [[#Configurazione_base|Configurare l'alias]] '''lg'''. 0. Una volta impostato, sarà possibile visualizzare l'andamento del repository digitando:{{{ git lg }}} <<Anchor(creare)>> = Creazione repository = == Creazione di un nuovo repository == Per creare un '''nuovo progetto''' o per importare (clonare) un '''progetto esistente''', vengono descritte di seguito le procedure. <<Anchor(creare)>> == Creazione nuovo repository == 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à creata la cartella nascosta `.git` contenente l'intera cronologia e i dati di controllo e restituito un messaggio simile al seguente:{{{ Inizializzato un repository Git in /home/mario/gitproject/.git/ }}} == 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 [[Programmazione/Git/Commit|seguente pagina]]. = Branching = '''Git''' permette una gestione avanzata dei '''branch''' (rami di sviluppo). Consultare la [[Programmazione/Git/Branch|seguente pagina]]. = Repository remoti = Tramite gli strumenti '''fetch''', '''pull''' e '''push''' è possibile sincronizzare il lavoro tra diversi utenti. Consultare la [[Programmazione/Git/RepositoryRemoti|seguente pagina]]. = Ulteriori risorse = * [[http://git-scm.com/|Sito ufficiale del progetto]] * [[http://git-scm.com/doc|Documentazione ufficiale del progetto]] * [[Programmazione|Portale sulla programmazione]] ---- 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.
Identificazione utente nei progetti
Impostare il nome utente e l'indirizzo e-mail da utilizzare globalmente per l'identificazione nei progetti Git, digitare nel terminale questi comandi:
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 propri dati. Esempio per l'utente Mario Rossi:
git config --global user.name "Mario Rossi" git config --global user.email mario.rossi@mail.com
Le configurazioni globali vengono salvate nel file nascosto .gitconfig nella propria directory Home. Per impostare dati specifici solo per un determinato repository, è sufficiente omettere l'opzione --global mentre ci si trova all'interno della cartella del progetto.
Impostazione dell'alias lg
Il monitoraggio dell'evoluzione del progetto avviene tramite la consultazione dello storico dei commit. Il comando principale è git log, tuttavia, per facilitare la lettura dei rami e delle modifiche, è prassi comune impostare un alias che fornisca una rappresentazione grafica e sintetica.
È 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"
Visualizzazione della cronologia
Una volta impostato, sarà possibile visualizzare l'andamento del repository digitando:
git lg
Creazione repository
Creazione di un nuovo 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à creata la cartella nascosta .git contenente l'intera cronologia e i dati di controllo e restituito un messaggio simile al seguente:
Inizializzato un repository Git in /home/mario/gitproject/.git/
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.
