Corso

Logo di GitHub. Fonte: GitHub Logos and Usage
Immagina di lavorare a un progetto di data science e di aver fatto grandi progressi. All'improvviso compare un bug. Vorresti tornare all'ultima versione funzionante, ma non ricordi tutte le modifiche che hai fatto. Oppure magari stai collaborando con altre persone ed è un incubo unire i contributi di tutti. Se questi scenari ti suonano familiari, non sei il solo.
Questi problemi comuni possono essere risolti con GitHub, la principale piattaforma per il controllo di versione e la collaborazione. In questo articolo vedremo come GitHub può migliorare il modo in cui gestisci i tuoi progetti dati. Inoltre, esploreremo tecniche di collaborazione e strategie per aumentare la produttività.
Iniziamo dalle basi del controllo di versione.
Che cos'è il controllo di versione?
Il controllo di versione è un sistema che tiene traccia nel tempo delle modifiche ai file. Permette a molte persone di collaborare su un progetto e mantiene una cronologia delle modifiche. Senza controllo di versione, gestire i cambiamenti al codice può diventare caotico e soggetto a errori, soprattutto nei progetti di team in cui diversi contributor lavorano contemporaneamente su parti differenti del codice.
A cosa serve GitHub?
Come avrai intuito, GitHub è una piattaforma versatile che eccelle nel controllo di versione. Ma GitHub ha numerose applicazioni anche oltre il controllo di versione, tra cui:
-
Creare un portfolio di progetti: GitHub ti permette di creare un profilo pubblico per mostrare a datori di lavoro o colleghi le tue competenze e i tuoi progetti in ambito dati.
-
Collaborazione: GitHub facilita il lavoro di squadra sui progetti, condividendo snippet di codice e rivedendo reciprocamente il lavoro.
-
Contributi open source: Con GitHub puoi esplorare e contribuire a progetti open source di data science esistenti, accelerando apprendimento e innovazione.
Come funziona GitHub?
Per comprendere appieno i vantaggi di GitHub, è essenziale capirne i componenti chiave e come funzionano insieme.
- Repository: I repository sono cartelle che archiviano i file del tuo progetto e la loro cronologia delle versioni. Puoi pensarli come schedari digitali per i tuoi progetti dati. Ogni repository ha un URL univoco e contiene file, branch e commit.
- Fork: Un fork è una copia personale del repository di un altro utente. Puoi apportare modifiche in modo indipendente e, in seguito, proporle al repository originale.
- Pull request: Le PR sono un modo formale per proporre le tue modifiche al maintainer del progetto per la revisione e l'unione. Semplificano il code review e la collaborazione.
- Issue: Servono per tracciare attività, bug o miglioramenti.
- Branch: Un branch è una versione parallela di un repository. Puoi creare branch per lavorare su funzionalità o correzioni specifiche e unirli al branch principale quando sono pronti. Scopri di più in questo tutorial su Git Clone Branch.
- Merge: Il merge combina il meglio delle tue modifiche con il progetto originale. Mantiene tutto ordinato e aggiornato. Un esempio tipico è unire un feature branch nel main.
Git vs. GitHub
Potresti chiederti come si relaziona Git a GitHub. Questi due termini sono spesso usati come sinonimi, ma c'è una distinzione importante.
Git è un sistema di controllo di versione distribuito (DVCS) che aiuta gli sviluppatori a gestire il proprio codice. Tiene traccia delle modifiche e consente di creare diverse versioni, o branch, del codice. Questo rende facile collaborare. Git supporta anche funzionalità come l'area di staging e la cronologia dei commit, fornendo un resoconto dettagliato delle modifiche al codice.
GitHub, invece, offre funzionalità aggiuntive come controllo degli accessi, tracciamento dei bug, gestione delle attività e wiki, rendendo più facile la collaborazione sui progetti. Usando GitHub puoi gestire il codice, tracciare le modifiche, rivedere i contributi e discutere le issue, tutto in un unico posto. Si integra anche con vari strumenti e servizi, migliorando il flusso di sviluppo.
|
Categoria |
Git |
GitHub |
|
Definizione |
Sistema di controllo di versione distribuito |
Piattaforma web basata su Git |
|
Scopo |
Aiutarti a gestire il codice, tracciare le modifiche e creare branch |
Ospita repository Git e fornisce strumenti aggiuntivi per la collaborazione |
|
Funzionalità |
Area di staging, cronologia dei commit, branching e merging |
Controllo degli accessi, tracciamento dei bug, gestione delle attività, wiki e integrazioni |
|
Vantaggio |
Abilita il lavoro collaborativo e il tracciamento dettagliato delle modifiche al codice |
Migliora collaborazione, project management e processi di code review |
Come usare GitHub
Finora abbiamo visto cos'è GitHub e cos'è il controllo di versione. Abbiamo anche confrontato Git e GitHub. Ora passiamo alla pratica con GitHub.
Per prima cosa vedremo come registrarsi a un account GitHub, personalizzare l'esperienza e scegliere un piano. Poi vedremo come creare un repository, configurarlo, aggiungere descrizioni e gestire la visibilità. Successivamente tratteremo la creazione di branch per lavorare su versioni diverse del progetto e passeremo ai commit, dove impareremo a modificare i file e a documentare le modifiche.
Registrazione
Ecco i passaggi per registrarti a un account GitHub e iniziare:
- Visita GitHub e fai clic sul pulsante Sign up.
- Segui le istruzioni per creare un account. Dovrai fornire il tuo indirizzo email, creare un nome utente e impostare una password.
- Puoi personalizzare l'esperienza scegliendo un piano adatto a te. Puoi anche impostare le preferenze durante la configurazione. Il piano gratuito è sufficiente per principianti e junior data practitioner.
Registrarsi a GitHub. Immagine dell'autore
Creare un repository
Dopo la registrazione, il passo successivo è creare un repository. Ecco i passaggi per creare il tuo primo repository:
-
Fai clic sull'icona + nell'angolo in alto a destra e seleziona New repository.
-
Puoi aggiungere un nome e una descrizione e scegliere se vuoi che il repository sia pubblico o privato. I repository pubblici sono visibili a tutti. I repository privati sono accessibili solo a te e ai collaboratori che inviti.
-
Facoltativamente, puoi aggiungere un file README, un file
.gitgnoree una licenza. Puoi aggiungerli anche in un secondo momento. -
Fai clic su Create repository.

Creare un repository. Immagine dell'autore
Dopo aver seguito i passaggi indicati sopra, vedrai una finestra con una configurazione rapida, di solito per un nuovo repository. Puoi iniziare creando un nuovo file o caricando un file esistente nel nuovo repository.

Configurazione del nuovo repository. Immagine dell'autore

Caricare file. Immagine dell'autore
Creare branch
Una volta configurato il repository, il passo successivo è creare dei branch. Ecco i passaggi per creare branch nel tuo repository:
-
Nel tuo repository, fai clic su Branch:main. Puoi trovarlo vicino alla parte alta della pagina.
-
Quindi fai clic sul pulsante New branch nell'angolo in alto a destra.
-
Inserisci un nuovo nome per il branch e fai clic su Create new branch.
-
Puoi passare da un branch all'altro facendo clic sul menu a discesa dei branch e selezionando quello su cui vuoi lavorare.

Creare branch. Immagine dell'autore
Effettuare commit
Dopo aver creato i branch, il passo successivo è effettuare dei commit. Ecco i passaggi per registrare le modifiche:
-
Vai al file che vuoi modificare nel tuo repository.
-
Puoi apportare modifiche facendo clic sull'icona della matita per modificare il file e intervenendo nell'editor di testo.
-
Fai clic su Commit Changes. Puoi semplicemente scorrere fino alla sezione Commit changes. È importante aggiungere un messaggio di commit, perché descrive le modifiche effettuate.

Effettuare commit. Immagine dell'autore
Creare una pull request
Una volta effettuati i commit, il passo successivo è creare una pull request. Ecco i passaggi per creare una pull request:
-
Vai alla scheda Pull requests nel tuo repository.
-
Fai clic su New pull request. GitHub confronterà automaticamente le modifiche tra i branch.
-
Rivedi le modifiche per assicurarti che sia tutto corretto confrontando il tuo branch con il branch principale.
-
Crea una pull request facendo clic su Create pull request. Puoi quindi aggiungere un titolo e una descrizione.
-
Aggiungi i revisori se necessario e invia. È facoltativo, ma può essere molto importante se vuoi un feedback o una conferma da chi guida il progetto.

Creare una pull request. Immagine dell'autore
Unire i branch
Dopo che la tua pull request è stata revisionata e approvata, l'ultimo passaggio è unire i branch. Ecco come procedere:
- Dopo la revisione e l'approvazione della pull request, vai alla pull request nella scheda Pull requests.
- Fai clic sul pulsante Merge pull request.
- Conferma l'unione facendo clic su Confirm merge.
Oltre all'interfaccia grafica di GitHub, puoi usare Git per la maggior parte delle attività. Ad esempio, puoi creare un repository Git in locale e unire le modifiche da un repository remoto con il comando git pull. Sentirti a tuo agio in questo ambiente è importante man mano che avanzi nella carriera, e il corso di DataCamp Introduction to Git è un'ottima risorsa per il tuo percorso. Puoi anche provare il nostro GitHub and Git Tutorial for Beginners per iniziare.
Alternative a GitHub
GitHub è la piattaforma più popolare per controllo di versione e collaborazione. Tuttavia, esistono diverse alternative con offerte e vantaggi specifici. È molto importante che chi aspira a lavorare con i dati conosca queste piattaforme, che potrebbero rispondere a esigenze particolari.
Vediamo alcune alternative a GitHub.
GitLab
È una piattaforma DevOps che offre gestione dei repository Git, tracciamento delle issue e funzionalità di pipeline CI/CD. GitLab è nota per l'approccio all-in-one al DevOps, integrando un'ampia gamma di strumenti e servizi.

Logo di GitLab
Ecco alcune funzionalità chiave:
- CI/CD integrato: GitLab ha pipeline integrate per integrazione e distribuzione continue. Queste pipeline automatizzano il testing e il deployment del codice.
- Issue tracking: Con il sistema di tracciamento delle issue di GitLab puoi gestire attività, bug e richieste di funzionalità tramite board, milestone ed etichette.
- Auto DevOps: Configura le pipeline in base alla struttura del progetto, risparmiando tempo nella configurazione.
- Container Registry: GitLab offre un registro di container integrato per gestire immagini Docker.
- Funzionalità di sicurezza: Strumenti di security testing integrati consentono il monitoraggio continuo e la scansione di vulnerabilità nella codebase.
Bitbucket
Bitbucket è un prodotto della suite Atlassian che gestisce repository Git, inclusi repository Mercurial. È progettato per lavorare facilmente con altri prodotti Atlassian, come Jira e Trello.

Logo di Bitbucket
Ecco alcune funzionalità chiave:
- Permessi sui branch: Bitbucket consente un controllo granulare su chi può accedere e modificare i branch, migliorando la sicurezza.
- Integrazione CI/CD: Si integra con Bitbucket Pipelines per integrazione e distribuzione continue, abilitando test e deployment automatizzati.
- Integrazione con Jira: L'integrazione diretta con Jira permette un project management completo e il tracciamento dell'avanzamento dello sviluppo.
- Pull request: Commenti in linea e review delle pull request facilitano processi efficaci di code review.
- Deployment: Supporta i deployment tramite Bitbucket Pipelines, semplificando il processo di rilascio.
SourceForge
SourceForge è una delle prime piattaforme per l'hosting e la gestione di progetti open source. Offre un'ampia gamma di strumenti per gli sviluppatori, tra cui repository di codice, tracciamento dei bug e funzionalità di project management.
Le funzionalità principali includono:
- Hosting di progetti: Offre hosting gratuito per progetti open source, con banda e spazio di archiviazione illimitati.
- Statistiche di download: Statistiche dettagliate sui download aiutano a monitorare la popolarità e l'andamento dei progetti.
- Forum di discussione: Forum integrati facilitano il coinvolgimento della community e il supporto.
- Sistema di rilascio file: Un avanzato sistema di rilascio gestisce download e versioni dei progetti.
- Supporto SVN e Git: Supporta sia Subversion (SVN) sia Git come sistemi di controllo di versione.
AWS CodeCommit
AWS CodeCommit è un servizio di controllo del codice sorgente completamente gestito e ospitato da Amazon Web Services. Consente di archiviare e gestire il codice in modo sicuro nel cloud, integrandosi perfettamente con altri servizi AWS.
Le funzionalità principali includono:
- Scalabilità: AWS CodeCommit si adatta alle esigenze del tuo repository senza richiedere la gestione dell'infrastruttura.
- Sicurezza: L'integrazione con AWS Identity and Access Management (IAM) fornisce un controllo degli accessi granulare.
- Integrazione: Funziona bene con altri servizi AWS come CodePipeline, CodeBuild e CodeDeploy, facilitando un flusso CI/CD completo.
- Alta disponibilità: Basato sull'infrastruttura AWS, garantisce alta disponibilità e durabilità dei repository.
- Crittografia: I dati sono crittografati sia in transito sia a riposo, migliorando la sicurezza.
Cursor Origin
Cursor Origin è una piattaforma di hosting Git di Anysphere, il team dietro l'editor di codice AI Cursor. Diversamente dalle piattaforme più datate, è costruita fin dall'inizio attorno allo sviluppo assistito dall'IA: ospita i tuoi repository come qualsiasi forge Git, ma tratta i commit e le pull request generati dagli agenti come elementi di prima classe. Puoi anche creare mirror di repository GitHub esistenti in Origin, così provarlo non significa abbandonare il tuo flusso di lavoro attuale.
Le funzionalità principali includono:
- Design AI-agent-first: Gli agenti di coding di Cursor possono inviare commit, aprire pull request e agire direttamente sui repository, rendendolo un ambiente naturale per lo sviluppo guidato da agenti.
- Mirroring da GitHub: Esegui il mirroring dei tuoi repository GitHub esistenti in Origin per adottarlo gradualmente invece di migrare tutto in una volta.
- Integrazione con Cursor: La stretta integrazione con l'editor Cursor e i suoi agenti cloud mantiene hosting, editing ed esecuzioni degli agenti all'interno di un unico ecosistema.
- Workflow Git standard: Repository, branch e pull request si comportano come ti aspetti, con una configurazione guidata da CLI per iniziare.
- Review delle pull request: La revisione in piattaforma ti aiuta a valutare le pull request generate dall'IA prima di unirle nel branch principale.
Per una guida pratica alla configurazione via CLI e al mirroring di un repo GitHub, vedi il nostro tutorial su Cursor Origin.
Conclusione
In questo articolo abbiamo esplorato gli aspetti fondamentali di GitHub, la sua importanza e il suo funzionamento. Siamo partiti dal concetto di controllo di versione e dalla sua rilevanza nella gestione delle modifiche a codice e dati. Infine, abbiamo fornito una guida pratica all'uso di GitHub: dalla registrazione alla creazione dei repository, ai commit, alla gestione delle pull request e all'unione dei branch.
Una chiave per il successo nel mondo dei dati è l'apprendimento continuo. Per ampliare ulteriormente i tuoi orizzonti su GitHub e sulle sue applicazioni nella data science, puoi ascoltare l'episodio del nostro podcast DataFramed su Il futuro della programmazione con Kyle Daigle, che offre spunti dal COO di GitHub sul panorama in evoluzione della programmazione. Puoi anche esplorare GitHub Concepts, un corso completo su tutto ciò che riguarda GitHub. Inoltre, leggi la nostra guida alle certificazioni GitHub per scoprire come possono giovare alla tua carriera.
Professionista dei dati e scrittore con esperienza, appassionato nell’aiutare aspiranti esperti nel mondo dei dati.
Domande frequenti
GitHub è difficile da imparare?
Anche se Git, la tecnologia sottostante, ha una curva di apprendimento, GitHub offre un'interfaccia intuitiva per gestire le funzionalità di Git.
In cosa Git è diverso da GitHub?
Git è un sistema di controllo di versione che traccia le modifiche ai file, mentre GitHub è una piattaforma che ospita online i repository Git.
GitHub è sicuro per archiviare dati sensibili?
I repository pubblici su GitHub sono visibili a tutti. È buona pratica evitare di archiviare dati sensibili, come password o chiavi API, nei repository pubblici. Usa invece repository privati.
Devo pagare per usare GitHub?
GitHub offre un piano gratuito con repository pubblici illimitati e repository privati (con spazio limitato). I piani a pagamento offrono funzionalità aggiuntive, come più spazio e collaborazione avanzata.
Quali sono alcune alternative a GitHub?
GitLab, Bitbucket, SourceForge, AWS CodeCommit
Come posso dimostrare la mia conoscenza di GitHub durante i colloqui?
Per mostrare efficacemente la tua competenza su GitHub durante i colloqui, valuta di ottenere una GitHub Certification, che convalida le tue abilità, valorizza il CV, aumenta la fiducia e dimostra impegno nell'apprendimento.


