Oggi cerchiamo di parlare in modo semplice di git, un potente strumento utilizzato per gestire al meglio i repository che contengono i nostri progetti.
L’AI chat gpt di open ai parla di git in questi termini:
“Git è un sistema di controllo versione distribuito, ovvero uno strumento che ti permette di tenere traccia delle modifiche apportate ai tuoi file e di collaborare con altri sviluppatori su un progetto. Con Git puoi registrare le modifiche apportate ai file nel tempo e recuperare versioni precedenti del codice.
Git è composto da due parti principali: il repository locale e il repository remoto. Il repository locale è la copia del tuo progetto sul tuo computer, mentre il repository remoto è la copia del progetto su un server remoto, che può essere GitHUb o un altro servizio di hosting Git.
GitHub è un servizio di hosting Git che ti permette di ospitare il tuo repository remoto e di collaborare con altri sviluppatori su un progetto. Con GitHub puoi creare un account e caricare i tuoi progetti sul tuo repository remoto. Puoi invitare altri utenti a collaborare al tuo progetto, permettendo loro di accedere al repository, di apportare modifiche e di caricare il loro lavoro sul repository remoto.
In sintesi, Git e GitHub sono strumenti essenziali per la gestione del codice e della collaborazione su progetti di sviluppo software. Utilizzandoli correttamente, puoi tenere traccia delle modifiche apportate ai tuoi file, collaborare con altri sviluppatori e mantenere il tuo codice organizzato e aggiornato.”
Per fare tutto ciò git mette a disposizione molti strumenti, alcuni integrati anche in software di sviluppo come Visual Studio Code o Eclipse IDE, ma come sempre per noi non vedenti risulta più semplice, immediato e controllabile utilizzarlo da riga di comando.
Per poter utilizzare git su sistemi Windows, Abbiamo bisogno di installare il suo client, possiamo scaricare l’installer da questo sito.
In linea generale, ricapitolando, andremo ad esempio sul sito di Git Hub, creeremo un account, dopo esserci loggati creeremo un nuovo repository, pubblico o privato.
A questo punto avremo la url del nostro repository, la nostra user e la nostra password. Potremo quindi collegarci a tale server con il nostro client.
Potremmo ora pensare di creare sul nostro pc windows una cartella di lavoro, chiamiamola “workspace”. Rechiamoci in questa cartella mediante prompt dei comandi.
A questo punto siamo pronti per eseguire il primo comando git che vedremo di seguito, quello per clonare in locale sul nostro pc ciò che è presente nel repository pubblico precedentemente creato.
Useremo quindi git sul nostro pc, per dialogare con il server git prescelto. Sul server saranno presenti i file del nostro progetto, sincronizzati con i file locali presenti sul nostro pc.
Una lista di comandi utili
In base alla necessità, utilizziamo i seguenti comandi nel prompt di Windows. Non mi assumo alcuna responsabilità su eventuali perdite di dati o altre problematiche che si possono verificare con i vostri progetti.
Questo breve articolo non ha la pretesa di spiegare tutto ciò che c’è dietro al mondo di git, non verranno spiegati concetti come quello di main, branch o tag, ma solo elencati i comandi più utili per iniziare ad esplorare questo strumento.
Segnalo però il link a questa guida teorica su git, vi consiglio di studiarla prima di eseguire i comandi.
Per inizializzare un repository git in una folder locale:
git init
Per collegare un repository locale a un repository remoto:
git remote add origin https://github.com/tuo-username/tuo-repository.git
Per prelevare il contenuto di un server pubblico basta eseguire:
git clone https://url_progetto.git
Per prelevare tutte le modifiche da un progetto a cui si è collegati, per il quale è già stato eseguito un comando di clone:
git pull
Per aggiungere le proprie modifiche nello stage, pronte quindi ad essere poi committate sul server remoto. Possiamo ad esempio pensare di eseguire questo comando più volte, man mano che lavoriamo sui file del nostro progetto, magari man mano che facciamo modifiche:
git add*
Per preparare il commit da committare su server, tale comando racchiuderà tutti i file precedentemente aggiunti con il comando “add *”:
git commit -m "messaggio"
Per pubblicare le modifiche su server remoto:
git push
Per creare un nuovo branch locale, da committare poi su server:
git checkout -b nome_del_nuovo_branch
Per mettere il nuovo branch su server remoto:
git push origin nome_del_branch
Per cambiare branch tra quelli disponibili:
git checkout nome_del_branch
Per cambiare branch ignorando le modifiche locali:
git checkout -f nome_del_branch
Per vedere l’elenco dei branch locali disponibili (quello selezionato è preceduto dal simbolo di *):
git branch
Per eliminare un branch locale:
git branch -D nome_branch
Per vedere l’elenco dei branch remoti:
git branch -r
Per visualizzare i soli file sui quali è presente un conflitto di merge, in pratica il merge automatico di git è fallito:
git diff --name-status --diff-filter=U
Per prelevare da git sovrascrivendo i file locali, quindi ignorando tutte le modifiche locali:
git fetch
git checkout origin/main
oppure git reset --hard origin
Per mostrare lo stato attuale del repository Git, indicando quali file sono stati modificati, eliminati o aggiunti :
git status
Per mostrare la cronologia dei commit del repository:
git log
nota bene: la schermata dei log è molto lunga e viene paginata da git, per poter tornare ad utilizzare la schermata del prompt per impartire nuovi comandi premre la lettera “q”.
Per avere delle specifiche informazioni di un commit in base al suo id:
git show id_commit
Per mostrare i dettagli dei due commit più recenti, inclusi i cambiamenti apportati a ciascun file:
git log -p -2
Dopo essersi posizionati in un branch, digitare il seguente comando per fare il merge del branch corrente con un altro specificato:
git merge branch_da_mergiare
Per avere la url web del progetto su cui si sta lavorando:
git remote -v
In conclusione
In alternativa al client git per Windows, potreste anche pensare di utilizzare la shell di linux presente in Windows tramite lo strumento opzionale WSL (Ubuntu Windows Linux Subsystem). Qui git è già installato di default.
I comandi illustrati non sono sicuramente tutti quelli disponibili, ma sono quelli che uso per la maggior parte del tempo quando ho a che fare con git e git hub.
Inoltre, nella guida che ho indicato potrete trovare altri spunti interessanti.
Questo è il mio modo accessibile per utilizzare git, senza l’ausilio di interfacce grafiche o tool di terze parti, ma in forma testuale tramite il prompt dei comandi.
Rimango a disposizione per ulteriori chiarimenti.
Sostieni questo blog con una donazione
Se ti piace ciò che faccio e lo trovi utile, fai una donazione con Paypal oppure usa SatisPay.
Grazie per il tuo supporto!