|
⇤ ← Revision 1 as of 2011-01-06 23:11:15
Size: 3762
Comment: first draft
|
Size: 3748
Comment: header
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 2: | Line 2: |
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: it-~ |
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[UsingGit|English]] - Italiano-~ |
| Line 12: | Line 10: |
| Questa è una guida introduttiva all'uso di git. Verrano spiegate le basi per capire il suo funzionamento e il suo uso. | Questa è una guida introduttiva all'uso di git. Verranno spiegate le basi per capire il suo funzionamento e il suo uso. |
| Line 26: | Line 24: |
| Cos'è '''git'''? Git è un sistema di '''''Controllo di versione distribuito'''''. La parte importante è ''Controllo di versione'' -- significa che è un programma che ti permette di tenere traccia dei cambiamenti dei file e comparare le differenti "versioni", e fare anche un'altra cosa fantastica, come tornare indietro a precedenti versioni di un certo file. | Cos'è '''git'''? Git è un sistema di '''''Controllo di versione distribuito'''''. La parte importante è ''Controllo di versione'' -- significa che è un programma che permette di tenere traccia dei cambiamenti dei file e comparare le differenti "versioni", e fare anche un'altra cosa fantastica, come tornare indietro a precedenti versioni di un certo file. |
| Line 33: | Line 31: |
| === sistema di controllo di versione''Distribuito'' === | === sistema di controllo di versione''Distribuito'' === |
| Line 35: | Line 33: |
| Noi abbiamo analizzato ''git'' come Sistema di Controllo di Versione, ma ''git'' è un '''''VCS Distribuito'''''. ''Distribuito'' è un dettaglio dell'architettura di ''git'', che ha alcuni pro e alcuni contro. Ci sono altro "sistemi VCS'' famosi, come ''CVS'' e ''SVN'', questi vengono chiamati ''VCS Centralizzati'', questi hanno bisogno di avere una connessione al server centrale, per conservare tutti i dati e per eseguire molte operazioni. Pensa al comando ''log'': SVN ha bisogno di connettersi al server e scaricare i dati. | Noi abbiamo analizzato ''git'' come Sistema di Controllo di Versione, ma ''git'' è un '''''VCS Distribuito'''''. ''Distribuito'' è un dettaglio dell'architettura di ''git'', che ha alcuni pro e alcuni contro. Ci sono altri "sistemi VCS'' famosi, come ''CVS'' e ''SVN'', chiamati ''VCS Centralizzati''; questi hanno bisogno di avere una connessione al server centrale, per conservare tutti i dati e per eseguire molte operazioni. Pensa al comando ''log'': SVN ha bisogno di connettersi al server e scaricare i dati. |
| Line 37: | Line 35: |
| Con i ''VCS Distribuiti'' (e ''git'' è uno di questi), questo non avviene: ogni copia del repository è una copia '''completa'''. Questo significa che le operazione sono più veloci, e che soprattutto puoi usare git sul tuo computer locale, senza avere un server. | Con i ''VCS Distribuiti'' (e ''git'' è uno di questi) ciò non avviene: ogni copia del repository è una copia '''completa'''. Questo significa che le operazione sono più veloci, e che soprattutto puoi usare git sul tuo computer locale, senza avere un server. |
| Line 39: | Line 37: |
| Ovviamente anche i VCS Distribuiti hanno i loro difetti. Il problema più importante che ho riscontrato sono il grande numero di ''conflitti'. QUesto perchè con i VCS Centralizzati, un commit è di solito rifiutato se conflitta con la copia del server. Invece con i VCS distrubuiti, chiunque può eseguire un commit nel suo repo, e conflitta solo quando viene ''pushato'' (il termine "push" verrà spiegato in seguito). | Ovviamente anche i VCS Distribuiti hanno i loro difetti, il problema più importante che ho riscontrato è il gran numero di ''conflitti'. Questo perché con i VCS Centralizzati un commit è di solito rifiutato se conflitta con la copia del server. Invece con i VCS distrubuiti, chiunque può eseguire un commit nel suo repo, e conflitta solo quando viene ''pushato'' (il termine "push" verrà spiegato in seguito). |
| Line 49: | Line 47: |
| * Un '''commit''' è una referenza ad un singolo tree, e contiene anche altre meta-informazioni, come il timestamp, l'autore (nome ed email) e chi ha apportato il cambiamento e un puntatore al commit precedente. Generalmente, quando si usa git, si fa riferimento solo ai commit. | * Un '''commit''' è una referenza ad un singolo tree, e contiene anche altre meta-informazioni, come il timestamp, l'autore (nome ed email) che ha apportato le modifiche e un puntatore al commit precedente. Generalmente, quando si usa git, si fa riferimento solo ai commit. |
| Line 52: | Line 50: |
| Se pensiamo al modello di immagazzinamento di git, noi distinguiamo una "area di lavoro", un "index" e un "repository": |
Se pensiamo al modello di immagazzinamento di git, distinguiamo una "area di lavoro", un "index" e un "repository": |
Translation(s): English - Italiano
Contents
Usare Git
Seminario online tenuto da David Paleino per Debian Women, 25-Nov-2010
Questa è una guida introduttiva all'uso di git. Verranno spiegate le basi per capire il suo funzionamento e il suo uso.
Requisiti
In questa guida si presume che:
si conosca l'uso di base della linea di comando e l'utilizzo di un editor di testo a scelta (emacs, vim, gedit, kate, etc.);
Requisiti tecnici:
Introduzione
Cos'è git? Git è un sistema di Controllo di versione distribuito. La parte importante è Controllo di versione -- significa che è un programma che permette di tenere traccia dei cambiamenti dei file e comparare le differenti "versioni", e fare anche un'altra cosa fantastica, come tornare indietro a precedenti versioni di un certo file.
Git viene usato da molti progetti software moderni, quindi è bene conoscere almeno un po' del suo funzionamento. Non c'è bisogno di andare molto nei dettagli, verrà spiegato solo il suo funzionamento di base e il suo uso generale.
Teoria
sistema di controllo di versione''Distribuito''
Noi abbiamo analizzato git come Sistema di Controllo di Versione, ma git è un VCS Distribuito. Distribuito è un dettaglio dell'architettura di git, che ha alcuni pro e alcuni contro. Ci sono altri "sistemi VCS famosi, come CVS e SVN, chiamati VCS Centralizzati; questi hanno bisogno di avere una connessione al server centrale, per conservare tutti i dati e per eseguire molte operazioni. Pensa al comando log: SVN ha bisogno di connettersi al server e scaricare i dati. Con i Ovviamente anche i VCS Distribuiti hanno i loro difetti, il problema più importante che ho riscontrato è il gran numero di
VCS Distribuiti (e git è uno di questi) ciò non avviene: ogni copia del repository è una copia completa. Questo significa che le operazione sono più veloci, e che soprattutto puoi usare git sul tuo computer locale, senza avere un server.
Il modello di immagazzinamento di git
Ogni oggetto all'interno di un repository git è identificato da una stringa univoca. Questa è chiamata hash. Normalmente è una somma SHA1 di alcune proprietà di cui parleremo più tardi.
Un oggetto git può essere un blob, un tree, commit o tag. Guardiamoli uno alla volta:
Un blob è un oggetto git su cui sono conservati i dati. Questo è generalmente un file su disco.
Un tree è come una cartella, fa referenza ad altri tree e/o blob. Immaginalo come una cartella con file e sottocartelle al suo interno.
Un commit è una referenza ad un singolo tree, e contiene anche altre meta-informazioni, come il timestamp, l'autore (nome ed email) che ha apportato le modifiche e un puntatore al commit precedente. Generalmente, quando si usa git, si fa riferimento solo ai commit.
Un tag è solo un modo per segnare un commit come se fosse in un certo modo speciale. Generalmente, i tag vengono usati per segnare commit con i numeri di versione, release e così via.
Se pensiamo al modello di immagazzinamento di git, distinguiamo una "area di lavoro", un "index" e un "repository":
