Git: suggerimenti e consigli per gli sviluppatori

by Janeth Kent Date: 28-06-2019 git gitHub tips guide

Per gli sviluppatori, Git si é conquistato un posto di rilevanza e rappresenta una preziosa risorsa.

Git è un programma per la gestione delle versioni, trovate tutte le informazioni sul sito ufficiale o sulla pagina di wikipedia. Attenzione: non confondetelo con GitHub, che invece, é un servizio di hosting e di team collaboration, basato sulle funzionalità di Git.

Questo articolo è rivolto a chi usa git da poco tempo, vuole essere una sorta di cheat sheet per principianti.

Cominciamo.

Innanzi tutto bisogna creare una nuova directory, una volta dentro, per creare un nuovo repository git eseguire :
 

git init


Per effetturare un checkout di un repository, creare una copia di un repository in locale eseguendo il comando
 

git clone /path/del/repository


per un server remoto, il comando è invece:
 

git clone nome@host:/path/del/repository


Quindi , com'è strutturato il nostro l'ambiente di lavoro?

Dunque: la copia locale del repository è composta da tre "alberi" mantenuti da git. Il primo è la tua Directory di lavoro. Il secondo è l'Index che fa da area di transito per i files e per finire l'HEAD che punta all'ultimo commit fatto.

Come modificare o validare?

Con Git, puoi ovviamente fare delle modifiche, aggiungendole all'Index, usando
 

git add


Abbiamo appena compiuto il primo step nel flusso di lavoro in git. Per validare le modifiche, si utlizza:
 

git commit -m "Testo del Messaggio della commit"


In questo modo, il file si trova nell'HEAD, ma non ancora nel repository remoto.

Vediamo ora come si effettua "l'invio" delle modifiche.

Come specificato sopra, le modifiche effettuate fino ad ora, si trovano nell'HEAD della copia locale. Per inviare queste modifiche al repository remoto, bisogna eseguire il seguente comando:
 

git push origin master


Arrivati a questo punto, è necessario cambiare il master nel branch al quale si vogliono inviare i cambiamenti. 

Se non avete copiato un repository esistente, e volete connettere il vostro repository ad un server remoto, è necessario aggiungerlo con il comando
 

git remote add origin


potete inviare le modifiche al server remoto specificato

Cosa sono i branch o ramificazioni?

I branch o, appunto, "ramificazioni') sono utilizzati per sviluppare features che sono isolate l'una dall'altra.

Il branch master è quello di default quando viene creato un repository. Si possonoi usare altri branch per lo sviluppo ed infine incorporarli (attraverso il 'merge') nel master branch una volta completati.

Proviamo a creare un nuovo branch chiamato "feature_personalizzata" e passiamo al nuovo branch usando
 

git checkout -b feature_personalizzata


torniamo sul master con
 

git checkout master


e cancelliamo il branch creato in precedenza
 

git branch -d feature_personalizzata


A questo punto, il branch non sarà più disponibile agli altri fino a quando non sarà inviato al repository remoto.
 

git push origin


Come aggiornare il repository locale?

Per aggiornare il repository locale alla commit più recente, è necessario eseguire il comando
 

git pull


nella directory corrente in modo da poter fare una fetch o recupero ed incorporare, il sopracitato merge, le modifiche fatte sul server remoto.

Per poter incorporare un altro branch a quello attulmente attivo (ad esempio il master), si usa
 

git merge



In entrambi i casi git prova ad auto-incorporare le modifiche. 

Purtroppo questa procedura automatizzata non è sempre possibile e spesso sorgeranno dei conflitti che dovremmo risolvere manualmente modificando i file che git mostrerà. Dopo aver corretto questi files, dovrai marcarli come 'correttamente incorporati' tramite il comando:
 

git add


Git permette anche di visualizzare un'anteprima delle modifiche eseguendo
 

git diff

 

L'importanza dei tag

 

Raccomandiamo creare dei tags nel caso in cui il software venga rilasciato. Quello dei tg è un concetto già conosciuto, che esiste anche in SVN. Si possono creare dei tag 1.0.0 eseguendo:
 

git tag 1.0.0 1b2e1d63ff


La sequenza 1b2e1d63ff si riferisce ai primi 10 caratteri del commit che si vuol referenziare tramite questo tag. L'id della commit si ottiene tramite
 

git log


Se ci accorgiamo di aver commesso un errore (e capita spessissimo ;-) ) possimo sostituire i cambiamenti fatti in locale con il comando
 

git checkout --


Questa operazione rimpiazza le modifiche nell'albero di lavoro con l'ultimo contenuto presente in HEAD, mentre le modifiche all'index, così come i nuovi files, verranno mantenute.

Se invece, volete eliminare tutti i cambiamenti e commits fatti in locale, dovete recuperare l'ultima versione dal server e far puntare il nostro master branch a quella versione:
 

git fetch origin

git reset --hard origin/master


Parametri per un logging migliore

 

Esempio  git log --oneline --graph


Diamo un'occhiata ai parametri a riga di comando più utili:
 

  • --author=“Manoweb"– Mostra solo le commit eseguite da un certo autore
  • --name-only – Mostra soli i nomi dei file cambiati
  • --oneline – Mostra i dati delle commit compressi su una riga
  • --graph –Mostra l'albero delle dipendenze per tuttie le commit
  • --reverse – Mostra le commit in ordine inverso (prima le commit più vecchie).
  • --after –Mostra tutte le commit che sono avvenute dopo una certa data
  • --before – Mostra tutte le commit che sono avvenute prima di una certa data
 

Immaginate di avere un cliente che vi chiede di presentare resoconti settimanali, ogni venerdì. Ogni venerdí, potete eseguire: git log --author="Manoweb" --after="1 week ago"--oneline , ed inviarlo al manager per la revisione.

Git ha molti più parametri a riga di comando che sono utili. Basta eseguire man git-log e vedere cosa succede :-).

Inoltre Git ha un parametro --pretty che permette di creare un output altamente personalizzabile.

 

Registrare le modifiche in un file

 

Esempio: git log -p filename

git log -p o git log -p filename permette di visualizzare non solo il messaggio di commit, l'autore e la data, ma anche le modifiche effettive che hanno avuto luogo in ogni commit.

Poi si può usare il normale comando di ricerca "slash" seguito dal termine di ricerca /{{{{termine-da-ricercare}}} per cercare le modifiche a una particolare parola chiave nel tempo. (Utilizzare le lettere minuscole n per passare al risultato successivo e le lettere maiuscole N per passare al risultato precedente).

 

Registrare le modifiche solo per alcune linee specifiche in un file

 

Puoi usare git blame filename per trovare la persona responsabile della modifica di ogni riga del file.

git blame è un ottimo strumento, ma a volte non fornisce sufficienti informazioni.

Un'alternativa è fornita da git log grazie al flag -L. Questo flag permette di specificare le linee particolari di un file al quale si è interessati. Quindi Git registrerebbe solo le modifiche rilevanti per quelle linee. E' una specie di git log -p.

git log -L 1,1:mio-file.txt

 

Risorse Utili:

installare Git

Scarica git per OSX

Scarica git per Windows

Scarica git for Linux

Alcuni clients grafici

Alcune guide

 

 

 

 
by Janeth Kent Date: 28-06-2019 git gitHub tips guide visite : 3955  
 
Janeth Kent

Janeth Kent

Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.

 
 
 

Articoli correlati

Finalmente attiva la CLI di GitHub

Quello che molti utenti di GitHub aspettavano da tempo è finalmente arrivato: GitHub CLI, una soluzione che porta GitHub al terminale. Questa nuova soluzione riduce il cambio di contesto, aiuta a…

Emergenza Covid-19: Progetto Solidarietà Digitale

Come ormai molti di noi avranno sentito, il Decreto della Presidenza del Consiglio dei Ministri del 9 marzo 2020, entrata in vigoore oggi, 10 marzo 2020, estende le misure di…

318 utili risorse per Twitter Bootstrap #2

Input BOOTSTRAP-WYSIHTML5-RAILS Un editor wysiwyg per Twitter Bootstrap. TIMEPICKER Seleziona ora e data con questo timepicker per Bootstrap. COMBOBOX FUEL UX Fuel UX estende Twitter Bootstrap con ulteriori controlli JavaScript leggeri. Altri vantaggi…

Camuffare la posizione geografica in Google Chrome

Chrome, come tutti i browser di nuova generazione, permette ai siti Internet, ai servizi online ed alle applicazioni di rilevare la posizione geografica dell’utente (previa autorizzazione). Questo ormai è noto a…

Creare un modulo PDF compilabile con LibreOffice

Siete anche voi dei fan dei software liberi ed avete dirottato i vostri interessi verso le suite office a distribuzione gratuita come Open Office o Libre Office? Ottimo. Sarete, quindi, anche…

318 utili risorse per Twitter Bootstrap #1

Se utilizzate il framework Twitter Bootstrap non potete non dare un'occhiata a questa nostra ultima rassegna contentente ben 318 risorse per sfruttare al massimo questo incredibile strumento di sviluppo. Le risorse…