Strumenti Utente



git_guida_pratica

git guida pratica

git: guida pratica

git e il controllo di versione

Lavorando su progetti complessi distribuiti su più file, sicuramente avrete sentito parlare di controllo di versione. Se non ne avete mai sentito parlare vi rimando alla pagina http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/it/ch01.html che permette di apprendere velocemente di cosa si tratta.

Uno dei software attualmente più diffusi per il controllo di versione è git, creato nientepopodimeno che da Linus Torvalds. D'altronde se sei Linus Torvalds e hai bisogno di un software, cosa fai, lo compri? Assolutamente no, lo scrivi ;-)

Repository

Per creare un nuovo progetto da gestire con il controllo di versione (d'ora in poi repository), creiamo una directory, ci entriamo e digitiamo

git init

Se invece il repository esiste già su un server remoto, il comando sarà

git clone [email protected]:/percorso/del/repository

Aggiunta e modifica di file

Per aggiungere file al repository, o per segnalare al sistema che un file è stato modificato, usiamo il comando

git add nome-file

Per controllare i file già presenti nel repository ed aggiungerli al commit se sono stati modificati

git add -u

Terminate le modifiche ai file, segnalati con il comando git add, validiamo le modifiche (creiamo il commit)

git commit -m "Messaggio per il commit"

Per caricare in remoto le modifiche apportate (il commit) usiamo

git push

Infine per scaricare su un altra macchina gli aggiornamenti caricati in remoto usiamo il comando

git pull

Tags

I tag sono utili per contrassegnare le versioni significative del nostro progetto, spesso vengono usati per individuare le varie release.

Per creare un tag, dalla directory del progetto digitiamo

git tag -a v1.4 -m 'versione 1.4'

Una volta creato il tag dobbiamo caricarlo sul repository. Non è sufficiente il comando git push da solo, dobbiamo specificare l'opzione –tags

git push --tags

Per verificare i tag già creati usiamo

git tag -l

Se invece vogliamo cancellare il tag “nome-tag” digitiamo

git tag -d nome-tag
git push origin :nome-tag

Branches

I branch sono usati per gestire diverse “linee di sviluppo” del nostro progetto, di modo da poter sperimentare nuove funzionalità senza compromettere la stabilità del codice del repository principale.

Per creare un nuovo branch

git checkout -b v2.1.x

Una volta creato il branch localmente, lo carichiamo in remoto con il comando

git push origin v2.1.x

Per verificare i branch disponibili in remoto diamo il comando

git branch -r  

Per lavorare con il nuovo branch

git checkout v2.1.x

Per verificare quanti branch abbiamo

git branch -v

Il branch con l'asterisco a fianco è il branch attivo

% git branch -v
* v2.1.x 170eb10 Initial commit.
master 170eb10 Initial commit.

I comandi per cancellare il branch “v2.1.x” sono

git branch -d v2.1.x
git push origin :v2.1.x

E' opportuno che il nome di un branch non coincida con il nome di un tag. Se per sbaglio questo è accaduto, e vogliamo cancellare il branch, dopo aver dato git branch -d nome-branch, digitiamo

git push origin :refs/heads/nome-branch

Al contrario, nel caso dei tag, dopo aver digitato git tag -d nome-tag digitiamo

git push origin :refs/tags/nome-tag

Ad un certo punto, dopo aver, ad esempio, implementato e testato nuove funzionalità, supponiamo di voler unire il branch v2.1.x con il repository master. Creeremo una copia del repositori master e vi uniremo il branch, il tutto con i comandi

git checkout master
git merge v2.1.x

Se invece vogliamo sostituire un branch, ad esempio master, con un altro, ad esempio dev, usiamo i comandi

git checkout dev
git merge -s ours master
git checkout master
git merge dev

Per approfondire

Nell'articolo mi sono limitato a descrivere semplici casistiche di impiego, nel caso vi troviate in situazioni più esotiche o anche solo per approfondire le potenzialità del programma, vi rimando ai link seguenti:

Buon controllo di versione a tutti!

Comments


git_guida_pratica.txt · Ultima modifica: 2017/05/15 15:45 da mickele

Facebook Twitter Google+ Digg Reddit LinkedIn StumbleUpon Email