Last chance! 50% off DataCamp Premium
Sale ends in
I repository sono spazi digitali in cui i tuoi progetti vengono archiviati. Conservano i file, tracciano le modifiche e semplificano la collaborazione con gli altri. Puoi vedere cosa è cambiato, chi ha effettuato la modifica e perché.
In questo articolo vedremo cosa sono i repository, i principali tipi che incontrerai e perché sono importanti.
Un repository (o repo) è un luogo centrale in cui sono archiviati tutti i file, il codice, i documenti e le risorse di un progetto. È come un hub che mantiene tutto organizzato e accessibile al tuo team.
Ciò che rende utile un repository è il supporto al controllo di versione. Significa che ogni modifica viene registrata: chi l'ha fatta, quando è stata fatta e perché. Se qualcosa si rompe o deve essere rivisto, puoi sempre tornare a una versione precedente.
Per esempio, puoi pensare a un repository come a una cartella di progetto nel cloud. Come una cartella sul tuo computer, contiene tutti i tuoi file in un unico posto. Ma, a differenza di una cartella normale, un repository traccia ogni modifica, annota chi l'ha fatta e salva l'intera cronologia.

Questo significa che tu e il tuo team potete aggiungere, aggiornare o riorganizzare i file liberamente, senza la paura di perdere il lavoro.
Vediamo le caratteristiche principali di un repository e come funzionano:
Un repository mantiene tutti i file del tuo progetto in un unico posto. Invece di avere il codice su un portatile, le immagini in una chat e le note in un'email, tutto vive insieme in un unico spazio. Così non perdi mai di vista ciò che è importante e tutto il tuo team sa sempre dove trovare i dati rilevanti.
Se, per esempio, stai costruendo un sito web, il tuo HTML, CSS, le immagini e le note sono tutti archiviati nello stesso repo. In questo modo, niente confusione e nessun file mancante.
Ogni volta che salvi modifiche in un repository, lui le ricorda. Puoi vedere chi ha fatto l'edit, quando e cosa è stato cambiato. Se succede qualcosa di insolito, niente stress. Puoi sempre tornare a una versione precedente. Questo ti dà la tranquillità che nulla vada perso.
Metti che il tuo compagno di squadra cancelli per sbaglio una parte del codice della homepage. (Lo so, capita!) Invece di riscrivere tutto, torni alla versione di ieri e il problema si risolve in pochi secondi.
Lavorando in un repository, tu e i tuoi colleghi potete contribuire tutti allo stesso tempo. Non devi aspettare che qualcun altro finisca e non devi preoccuparti di sovrascrivere il lavoro degli altri. Ognuno può concentrarsi sul proprio, e il repository mantiene tutto sincronizzato.
Diciamo che stai lavorando a un progetto con un collega. Uno può correggere un bug mentre l'altro progetta la homepage nello stesso momento. Significa che lavorate in parallelo, ma tutto confluisce senza intoppi nello stesso progetto complessivo.
Con un repository, i tuoi file non sono sparsi o difficili da trovare. Puoi impostare una struttura di cartelle chiara così sai sempre esattamente dove va ogni cosa. Questo mantiene il lavoro ordinato e ti evita di perdere tempo a scavare alla ricerca di quel file che ti serve.
Supponiamo che tu stia cercando il file "styles.css". Invece di frugare in decine di cartelle a caso, apri la cartella "assets" nel repo, ed è lì.
A volte vuoi mantenere il tuo progetto privato, altre volte vuoi condividerlo. Un repository ti dà il controllo su chi può visualizzare o modificare il tuo lavoro. Decidi tu se renderlo privato, pubblico o una via di mezzo con permessi personalizzati.
Per esempio, potresti tenere il repo privato mentre stai ancora sviluppando, poi renderlo pubblico dopo il lancio così gli altri possono esplorare il progetto finito.
I repository possono anche connettersi con gli altri strumenti che usi. Ciò significa che puoi impostare flussi di lavoro che testano automaticamente il tuo codice, distribuiscono aggiornamenti o persino aggiornano le attività di project management senza muovere un dito.
Metti che fai push di nuovo codice nel repo. Subito partono i test automatici e vengono segnalati i bug. Allo stesso tempo, la tua bacheca di progetto marca l'attività come completata. In questo modo, tutto lavora insieme.
Esistono diversi tipi di repository. A seconda del progetto, incontrerai vari tipi, ciascuno con il proprio scopo e i propri vantaggi. Vediamo i più comuni.
Un repository di controllo versione tiene traccia di ogni modifica apportata ai file del tuo progetto. Così puoi confrontare le versioni, tornare indietro se necessario e lavorare in sicurezza con i colleghi senza sovrascrivere il lavoro altrui.
Esistono diversi tipi di sistemi di controllo versione, e i più comuni che vedrai sono:
Un repository di un package manager archivia librerie di codice (chiamate package). Invece di scrivere tutto da zero, puoi importare codice pronto per accelerare lo sviluppo. Puoi anche impacchettare il tuo progetto e condividerlo con altri.
Questo fa risparmiare tempo e mantiene la coerenza perché non devi reinventare la ruota ogni volta che ti servono funzionalità comuni come login, grafici o pulsanti.
Ecco alcuni repository di package manager popolari:
Un data repository è un luogo centrale in cui i dataset vengono archiviati, gestiti e condivisi. Invece di mantenere enormi file sparsi su diversi computer, un data repo li conserva in un'unica posizione affidabile.
Uno dei suoi principali vantaggi è che i repository di dati in genere includono metadati (dettagli come autore, data, versione e licenza). Questo rende i dati più facili da comprendere, riutilizzare e citare. Quindi, se sei un ricercatore o un data scientist, sai esattamente da dove provengono i dati e se puoi usarli.
Un esempio noto di data repository è Kaggle, dove le persone caricano dataset che altri possono scaricare, analizzare e persino migliorare in qualche modo.
Un repository di Infrastructure as Code (IaC) è il luogo in cui archivi i file di configurazione che descrivono la tua infrastruttura—come server, reti o risorse cloud. Invece di configurarle manualmente, le scrivi come codice.
Perché una volta che la tua infrastruttura è codice, può essere versionata, revisionata, riutilizzata e automatizzata come il software. Questo rende i team DevOps più rapidi e meno soggetti a errori umani.
Per esempio, con Terraform scrivi semplici file di configurazione che definiscono l'infrastruttura di cui hai bisogno. Terraform poi la crea o la aggiorna automaticamente. Quella configurazione resta nel repo così tutto il team può vederla, tracciarne le modifiche e riutilizzarla per futuri progetti.
Quando inizi a lavorare con i repository, incontrerai alcuni termini standard.
Ecco cosa significano:

Quando imposti un repository, decidi anche chi può accedervi. Alcuni sono accessibili a tutti, altri sono limitati ai collaboratori invitati, altri ancora rimangono all'interno di un'azienda.
Vediamo i tre tipi principali.
Un repo pubblico è accessibile a chiunque. Chiunque può visualizzarlo, scaricarlo o persino contribuire se lo consenti. È lo standard per i progetti open source, dove l'obiettivo è condividere il lavoro e invitare la comunità ad aiutare.
Se rilasci una libreria di codice gratuita, renderla pubblica significa che altri sviluppatori possono usarla, suggerire miglioramenti e correggere bug.
Poiché il mondo intero può vedere un repo pubblico, fai attenzione a non includere dati sensibili. Puoi usare strumenti come Dependabot per scansionare le vulnerabilità.
Un repo privato è accessibile solo alle persone che scegli. È comune per progetti non ancora pronti per la condivisione o che contengono codice sensibile o proprietario.
Se il tuo team sta costruendo il sito di un cliente, lo manterrai in un repo privato fino al lancio, così i concorrenti o il pubblico non possono accedervi.
Ma anche nei repo privati, niente pigrizia. Usa permessi solidi, l'autenticazione a più fattori e rivedi regolarmente gli accessi per prevenire problemi.
Un repo interno è disponibile solo alle persone all'interno della tua organizzazione. Tutti in azienda possono vederlo, ma gli esterni no. Funziona bene per i progetti aziendali che devono essere condivisi internamente ma non oltre.
Per esempio, un'azienda può ospitare i propri strumenti HR in un repo interno così ogni dipendente può usarli, ma nessuno al di fuori può vedere il codice.
Ma se usi un repo interno, tieni d'occhio permessi e politiche di fork in modo che il codice non trapeli all'esterno.
I repository ti offrono strumenti che rendono i progetti più facili da gestire e condividere. Ma c'è molto di più—ecco cosa ti aiutano a fare:
README.md o wiki, così tutti capiscono come funziona il progetto.Esistono diverse piattaforme su cui puoi ospitare i tuoi repository, ciascuna con i propri punti di forza. Vediamo le più comuni:
Classificato 32° tra i primi 500 siti web, GitHub è la piattaforma più popolare per ospitare repository, con milioni di sviluppatori e progetti già presenti. È diventata la scelta predefinita quando si parla di condivisione del codice.
GitHub offre un mix di funzionalità.
Ecco i piani tariffari di GitHub:
|
Piano |
Prezzo |
Ideale per |
|
Free |
$0 |
|
|
Team |
$4/mese |
|
|
Enterprise |
$21/mese |
|
Bitbucket è il servizio di hosting repo di Atlassian e funziona molto bene se già usi strumenti come Jira o Trello. Poiché sono tutti connessi, puoi tracciare le attività in Jira e collegarle direttamente al codice in Bitbucket, rendendo il lavoro di squadra molto più fluido.
Include anche pull request, code review e pipeline CI/CD integrate, così puoi testare e distribuire il codice direttamente dalla piattaforma.
Ecco come appaiono i loro piani tariffari:
|
Piano |
Prezzo |
Dettagli |
|
Free |
$0 |
|
|
Standard |
$3/mese |
|
|
Premium |
$6/mese |
|
GitLab è un altro grande nome nell'hosting di repo. È una piattaforma tutto-in-uno per codificare, testare e distribuire i progetti. A differenza di GitHub o Bitbucket, offre anche l'opzione di self-hosting sui tuoi server, che molte aziende apprezzano per privacy e controllo.
Include pipeline CI/CD integrate, così puoi testare e distribuire il codice automaticamente.
I loro piani tariffari sono i seguenti:
|
Piano |
Prezzo |
Dettagli |
|
Free |
$0 |
|
|
Premium |
$29/mese |
|
|
Ultimate |
$99/mese |
|
SourceForge è una delle piattaforme più antiche per ospitare progetti open source. Forse oggi non è popolare come GitHub o GitLab, ma è ancora ampiamente usata per distribuire software gratuito.
È focalizzata soprattutto su progetti open source, non privati, quindi se stai lavorando a software pubblico che chiunque può usare, SourceForge è ancora un'opzione solida.
Per i progetti open source è gratuita.
AWS CodeCommit è il servizio di repository basato su Git di Amazon. È completamente gestito, quindi non devi configurare o mantenere server: AWS si occupa di infrastruttura e scalabilità.
I repository sono privati per impostazione predefinita e puoi condividerli tra account AWS senza esporre credenziali.
Ecco come si presentano i piani tariffari:
|
Piano |
Prezzo |
Dettagli |
|
Free |
$0 |
|
|
Paid |
$1/utente al mese (oltre il livello gratuito) |
|
I repository mettono insieme tutto. Mantengono il codice al sicuro, tracciano le modifiche e rendono la collaborazione molto più semplice. Lo sviluppo software moderno sarebbe quasi impossibile senza di loro.
Quindi, se stai iniziando, dai un'occhiata al nostro corso Introduzione a Git. Impara le basi—commit, push e branch—e capirai subito perché i repository sono una parte così essenziale di ogni progetto.
Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.
Un repository locale vive sul tuo computer e archivia i file del progetto per il lavoro personale. Un repository remoto, invece, è ospitato su un server (come GitHub o GitLab) e consente collaborazione, condivisione e backup.
Un repository archivia il codice e i file correlati al progetto con la cronologia delle versioni. Gestisce lo sviluppo.
Un database invece archivia dati strutturati (come i record dei clienti) e gestisce dati in tempo reale.
Non sempre. Se si tratta solo di un file rapido e occasionale, un repo potrebbe essere eccessivo. Ma per qualsiasi cosa tu preveda di aggiornare, condividere o su cui collaborare, un repository rende la vita molto più facile.
Git è il sistema di controllo versione. Traccia le modifiche e gestisce i branch. GitHub è una piattaforma che ospita repository Git online e aggiunge funzionalità di collaborazione come pull request, issue e integrazioni.
La maggior parte dei progetti pubblici accetta contributi tramite pull request. Di solito fai il fork del repo, apporti le modifiche e poi invii una pull request affinché il maintainer la riveda.
Sì. La maggior parte delle piattaforme (come GitHub, GitLab, Bitbucket) ti permette di cambiare la visibilità di un repository in qualsiasi momento. Ma ricordati che una volta che qualcosa è stato pubblico, potrebbero già esistere copie altrove.
Impara con DataCamp
Corso
Corso
Corso
blog
Tim Lu
12 min

blog
Abid Ali Awan
15 min

blog
Abid Ali Awan
10 min