Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Git"
Differenze tra le versioni 20 e 23 (in 3 versioni)
Versione 20 del 25/03/2026 17.58.05
Dimensione: 8404
Autore: ivantu
Commento:
Versione 23 del 27/03/2026 18.48.14
Dimensione: 8778
Autore: ivantu
Commento: +correzioni
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 8: Linea 8:
'''Git''' è un sistema di controllo di versione distribuito ('''DVCS''' - '''D'''istributed '''V'''ersion '''C'''ontrol '''S'''ystem) utilizzabile da [[AmministrazioneSistema/Terminale|riga di comando]]. Gli aspetti principali di un sistema di controllo versione riguardano: '''Git''' è un sistema di controllo di versione distribuito ('''[[https://it.wikipedia.org/wiki/Controllo_versione_distribuito|DVCS]]''' - '''D'''istributed '''V'''ersion '''C'''ontrol '''S'''ystem) utilizzabile da [[AmministrazioneSistema/Terminale|riga di comando]]. Gli aspetti principali riguardano:
Linea 16: Linea 16:
'''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. 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.

{{{#!wiki note
Se si utilizza '''[[Ufficio/EditorDiTesto/VisualStudioCode#Git_in_Visual_Studio_Code|Visual Studio Code]]''' per programmare, '''Git''' è integrato nativamente.
}}}
Linea 27: Linea 31:
Esistono diversi strumenti grafici per agevolare la visualizzazione dei branch e la gestione dei commit: == Interfaccia grafica ==
Linea 29: Linea 33:
 * Strumenti essenziali installabili tramite il pacchetto `git-gui`.
  * '''gitk''': Specializzato nella visualizzazione della cronologia e dei branch.
  * '''git-gui''': Focalizzato sulla creazione dei commit, la gestione dell'area di staging e le operazioni di merge semplici.
 * '''Gitg''': È l'interfaccia grafica predefinita per l'ambiente desktop [[AmbienteGrafico/Gnome|GNOME]]. Offre una visualizzazione moderna e pulita dei commit e permette di gestire le operazioni comuni.
 * '''VS Code''': Integra strumenti avanzati di controllo versione direttamente nell'editor.
'''Git''' include due strumenti storici ad interfaccia grafica basati su Tcl/Tk. Sono essenziali ma molto leggeri e funzionali, per agevolare la visualizzazione dei branch e la gestione dei commit:
Linea 35: Linea 35:
== Interfacce grafiche (GUI) == [[AmministrazioneSistema/InstallareProgrammi/Apt|Installare]] i pacchetti:
 * '''[[apt://gitk|gitk]]''': Specializzato nella visualizzazione della cronologia e dei branch.
 * '''[[apt://git-gui|git-gui]]''': Focalizzato sulla creazione dei commit, la gestione dell'area di staging e le operazioni di merge semplici.
Linea 37: Linea 39:
'''Git''' include due strumenti storici basati su Tcl/Tk. Sono essenziali ma molto leggeri e funzionali. Essendo leggeri e funzionali '''gitk''' e '''git-gui''' richiedono l'avvio dal [[AmministrazioneSistema/Terminale|terminale]] all'interno della cartella del progetto, digitando i comandi:{{{
gitk
}}} o {{{
git-gui
}}}
Linea 39: Linea 45:
=== Gitk/Git-gui === === Ottimizzazione in GNOME ===
Linea 41: Linea 47:
[[AmministrazioneSistema/InstallareProgrammi/Apt|Installare]] i pacchetti [[apt://git-gui|git-gui]] e [[apt://gitk|gitk]]. Per l'ambiente desktop [[AmbienteGrafico/Gnome|GNOME]] '''Gitg''' offre una visualizzazione moderna e pulita dei [[Programmazione/Git/Commit|commit]] e permette di gestire le operazioni comuni.
Linea 43: Linea 49:
Si avviano dal terminale all'interno della cartella del progetto, digitando nel [[AmministrazioneSistema/Terminale|terminale]] i comandi:
 * Per lo storico:{{{
 gitk
 }}}
 * Per i commit:{{{
 git-gui
 }}}
[[AmministrazioneSistema/InstallareProgrammi/Apt|Installare]] il pacchetto [[apt://gitg|gitg]].
Linea 51: Linea 51:
=== Gitg (ottimizzato per GNOME) ===

[[AmministrazioneSistema/InstallareProgrammi/Apt|Installare]] il pacchetto [[apt://gitg|gitg]].

=== Integrazione in VS Code ===

Se si utilizza '''[[Ufficio/EditorDiTesto/VisualStudioCode#Git_in_Visual_Studio_Code|Visual Studio Code]]''' per programmare, '''Git''' è integrato nativamente.
Linea 85: Linea 78:
== Impostazione dell'alias lg == == Impostazione alias lg ==
Linea 87: Linea 80:
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. Il monitoraggio dell'evoluzione del progetto avviene tramite la consultazione dello storico dei [[Programmazione/Git/Commit|commit]]. '''Git''' fornisce il comando nativo `git log`, tuttavia, per facilitare la lettura dei rami e delle modifiche, è prassi comune impostare un alias '''lg''' che fornisca una rappresentazione grafica, colorata e sintetica, al fine di migliorarne la leggibilità dei rami.
Linea 89: Linea 82:
È consigliato impostare l'alias '''lg''' per una versione personalizzata del comando '''log''', al fine di migliorarne la leggibilità:{{{ {{{#!wiki important
Operazione da eseguire una sola volta.
}}}

Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
Linea 94: Linea 91:
= Visualizzazione della cronologia = == Visualizzazione della cronologia ==
Linea 96: Linea 93:
 0. [[#Configurazione_base|Configurare l'alias]] '''lg'''.
 0. Una volta impostato, sarà possibile visualizzare l'andamento del repository digitando:{{{
 git lg
 }}}
Per visualizzare la cronologia, l'andamento dei rami in qualsiasi repository del sistema una sola volta [[#Impostazione_alias_lg|configurato l'alias]] '''lg''', digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
git lg
}}}

Altrimenti per visualizzare la cronologia testuale semplice, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{
git log
}}}
Linea 104: Linea 104:
== Creazione di un nuovo repository ==
Linea 107: Linea 105:

<<Anchor(creare)>>
== Creazione nuovo repository ==
Linea 127: Linea 122:
== Clonazione repository == <<Anchor(clonare)>>
= Clonazione repository =
Linea 148: Linea 144:
= Risoluzioni problemi =

== 'lg' is not a git command ==

Se si prova a digitare `git lg`, '''Git''' restituisce il seguente errore:{{{
git: 'lg' is not a git command. See 'git --help'
}}}

Il comando `git lg` non esiste nativamente in '''Git''' funziona solo se è stato creato l'[[#Impostazione_alias_lg|alias corrispondente]].


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) utilizzabile da riga di comando. Gli aspetti principali 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.

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.

Se si utilizza Visual Studio Code per programmare, Git è integrato nativamente.

Installazione

Sebbene l'uso del terminale sia il metodo più diretto e completo

Installare Git, digitare in un terminale il seguente comando:

sudo apt install git

Interfaccia grafica

Git include due strumenti storici ad interfaccia grafica basati su Tcl/Tk. Sono essenziali ma molto leggeri e funzionali, per agevolare la visualizzazione dei branch e la gestione dei commit:

Installare i pacchetti:

  • gitk: Specializzato nella visualizzazione della cronologia e dei branch.

  • git-gui: Focalizzato sulla creazione dei commit, la gestione dell'area di staging e le operazioni di merge semplici.

Essendo leggeri e funzionali gitk e git-gui richiedono l'avvio dal terminale all'interno della cartella del progetto, digitando i comandi:

gitk

o

git-gui

Ottimizzazione in GNOME

Per l'ambiente desktop GNOME Gitg offre una visualizzazione moderna e pulita dei commit e permette di gestire le operazioni comuni.

Installare il pacchetto gitg.

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 alias lg

Il monitoraggio dell'evoluzione del progetto avviene tramite la consultazione dello storico dei commit. Git fornisce il comando nativo git log, tuttavia, per facilitare la lettura dei rami e delle modifiche, è prassi comune impostare un alias lg che fornisca una rappresentazione grafica, colorata e sintetica, al fine di migliorarne la leggibilità dei rami.

Operazione da eseguire una sola volta.

Digitare nel terminale il seguente comando:

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

Per visualizzare la cronologia, l'andamento dei rami in qualsiasi repository del sistema una sola volta configurato l'alias lg, digitare nel terminale il seguente comando:

git lg

Altrimenti per visualizzare la cronologia testuale semplice, digitare nel terminale il comando:

git log

Creazione repository

Per creare un nuovo progetto o per importare (clonare) un progetto esistente, vengono descritte di seguito le procedure.

  1. Creare la directory gitproject nella propria cartella Home, digitare nel terminale i seguenti comandi:

     mkdir ~/gitproject
  2. Spostarsi all'interno della cartella creata:

     cd ~/gitproject
  3. 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/

Si ricorda che tutte le operazioni di gestione del repository (commit, visualizzazione cronologia, gestione branch, ecc.) devono essere eseguite posizionandosi all'interno della directory del progetto (ad esempio tramite il comando cd ~/gitproject). In questo modo Git può accedere alla sottocartella nascosta .git necessaria per il corretto funzionamento dei comandi.

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.

Risoluzioni problemi

'lg' is not a git command

Se si prova a digitare git lg, Git restituisce il seguente errore:

git: 'lg' is not a git command. See 'git --help'

Il comando git lg non esiste nativamente in Git funziona solo se è stato creato l'alias corrispondente.

Ulteriori risorse


CategoryProgrammazione