Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Immutable Page
  • Info
  • Attachments


Guida verificata con Ubuntu: 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Git è un CVS (Control Version System). Gli aspetti importanti di un CSV si possono riassumere nel:

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

Rispetto a programmi come CVS, Subversion ma più similmente a Mercurial, 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.

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

Installazione/Configurazione base

  1. Per installare Git digitare in un terminale:

    sudo apt install git
  2. Impostare nome utente e indirizzo e-mail che si vogliono utilizzare per identificarsi nei progetti:

    git config --global user.name "NOME_UTENTE"
    git config --global user.email INDIRIZZO_E-MAIL

    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:

    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 il flag --global.

  3. Consigliato ma non obbligatorio, 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

Viene qui mostrato come creare un nuovo progetto o come importare (clonare) un progetto esistente.

Creazione nuovo repository

  1. Creare la cartella gitproject nella propria Home che conterrà il progetto e spostarsi al suo interno:

    mkdir ~/gitproject
    cd ~/gitproject
  2. 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).

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 prevede una gestione molto efficace dei branch (rami di sviluppo). Consultare la seguente pagina.

Repository remoti

Attraverso gli strumenti fetch, pull, push è possibile sincronizzare il lavoro svolto da utenti diversi utenti. Consultare la seguente pagina.

Ulteriori risorse


CategoryProgrammazione