Se hai lavorato con i codici, devi esserti imbattuto in parole come Git e GitHub. È anche possibile che tu li abbia usati anche tu. Ma sai cos’è esattamente Git o GitHub e come sono diversi l’uno dall’altro? Bene, se non lo fai, non preoccuparti! Non è mai tardi per imparare cose nuove né è così difficile in questo caso.
Controllo della versione: Git vs GitHub
Per capire l’esatta differenza tra git e GitHub devi prima conoscere il controllo della versione. Quindi, cosa intendi con il termine controllo della versione?
Il termine Controllo della versione si riferisce a un sistema che registra le modifiche a un file o a un insieme di file nel tempo chiamato “versioni”. In altre parole, queste versioni ti aiuteranno a tenere traccia delle modifiche nei tuoi codici/progetto e, se necessario, ad annullare anche quelle modifiche. Questa caratteristica di poter confrontare, differenziare e annullare le modifiche tra due versioni di un particolare progetto diventa davvero utile quando si lavora su un progetto più grande. Progetti più grandi significano più persone che lavorano sullo stesso codice, il che aumenta le possibilità di conflitti. Usando il controllo della versione puoi facilmente prevenire questi conflitti.
Questo sistema che controlla il versionamento dei codici è chiamato Version Control System (VCS). Per un’immagine migliore, puoi pensarlo come un “database”. All’interno di questo database, VCS acquisisce snapshot dell’intero progetto e li archivia come versioni. Ora con l’aiuto di queste istantanee, puoi facilmente confrontare le versioni e passare da una all’altra secondo necessità. Guarda l’immagine qui sotto che mostra l’intero processo:
Penso che ora tu capisca chiaramente il concetto di controllo della versione. Una cosa che vorrei menzionare qui è, non confondersi tra un VCS e un sistema di backup/distribuzione. Questo VCS elimina totalmente la necessità di cambiare o sostituire la toolchain, a differenza dei sistemi di backup. Di seguito ho elencato alcuni dei vantaggi dell’utilizzo del controllo della versione:
- Il controllo della versione crea flussi di lavoro adeguati che aiutano a prevenire il caos tra le persone che utilizzano il proprio processo di sviluppo con strumenti diversi e incompatibili.
- Ciascuna versione ha una descrizione di ciò che vengono apportate le modifiche in questa versione. Queste descrizioni aiutano a tenere traccia delle modifiche al codice in base alla versione.
- VCS sincronizza le versioni e garantisce che le modifiche non siano in conflitto con altre che utilizzano lo stesso repository.
- VCS aiuta a mantenere la cronologia delle modifiche mentre altre persone salvano nuove versioni del codice. Questa cronologia può essere rivista per scoprire da chi, perché e quando sono state apportate modifiche.
- Le funzionalità di automazione VCS fanno risparmiare tempo a te e ai tuoi team e generano risultati coerenti eseguendo test, analisi del codice e distribuzione ogni volta che vengono salvate nuove versioni.
Quindi ora andiamo avanti con questo blog su Git vs GitHub e capiamo cos’è esattamente Git.
Cos’è Git? – Git vs GitHub
Ora che conosci il controllo della versione, sarà davvero facile per te capire Git. Allora, cos’è Git?
Git è un software di controllo della versione che devi installare sul tuo sistema locale per usarlo. Per un individuo che lavora da solo su un progetto, Git si rivela un ottimo software. Ma cosa succede se stai lavorando a un progetto con un grande team. Tutti lavoreranno allo stesso progetto ma ognuno di voi avrà una versione diversa dello stesso progetto. Supponi di aver apportato modifiche alla directory del progetto sulla tua macchina e di voler inviare tali modifiche ai tuoi collaboratori. Inoltre, vuoi che le modifiche apportate appaiano direttamente nella directory del progetto della tua macchina. Come lavorare su un progetto, essere sulla stessa pagina con i tuoi compagni di squadra è molto importante per evitare qualsiasi tipo di conflitto. Allora, come lo farai? Bene, nessun problema Git si prende cura di tutto, ma l’unica condizione qui è che ciascuno dei membri del tuo team deve avere Git installato sui propri sistemi.
Git è anche noto come sistema di controllo della versione distribuito, il che significa che usando Git puoi eseguire il push e il pull delle tue e di altre modifiche alle macchine di altre persone:
Ora, usando Git puoi lavorare sulla stessa copia del membro del tuo team. Ma la copia su cui lavorerai non rifletterà nessuna delle modifiche nella directory principale a meno che e fino a quando non estrai le modifiche del tuo collaboratore e respingi le tue modifiche.
Nel mercato odierno, Git è il VCS moderno più diffuso e utilizzato. È abbastanza maturo ed è un progetto open source ben mantenuto. È stato sviluppato nel 2005 da Linus Torvalds, che è anche il creatore del kernel del sistema operativo Linux. Se controlli l’immagine sopra del risultato delle tendenze di Google, scoprirai che Git ha continuato a crescere nel mercato dal 2005. Un numero variabile di progetti software, inclusi quelli commerciali e open source, si affida completamente a Git per il controllo della versione . Quindi, in che modo Git è diverso dal resto che lo rende così popolare?
La principale differenza tra Git e qualsiasi altro VCS come Subversion (SVN), Mercurial, TFS, Perforce, Bazaar ecc., è il modo in cui Git memorizza i suoi dati. In altri sistemi, le informazioni vengono archiviate come un elenco di modifiche basate su file, noto anche come controllo della versione basato su delta . Ma nel caso di Git, memorizza i suoi dati sotto forma di un flusso di snapshot di un filesystem in miniatura. Con Git, ogni volta che esegui il commit o il salvataggio dello stato del tuo progetto, viene scattata un’istantanea dello stato attuale del file e viene memorizzato un riferimento per esso. Se non vengono apportate modifiche o aggiornamenti, Git memorizza un collegamento al file precedente che ha già archiviato. Il diagramma seguente mostra come Git archivia le versioni:
Ma Git sarà utile solo quando sai quando il sistema del tuo collaboratore è acceso ed è connesso a una rete. Quindi cosa farai quando i membri del tuo team non sono online? In queste situazioni, una terza parte che ha una copia identica del tuo progetto, da cui puoi facilmente spingere e tirare le modifiche, tornerà utile.
Bene, sarai felice di sapere che questo è ciò che fa GitHub e nella prossima sezione di questo blog su Git vs GitHub, spiegherò tutto al riguardo.
Cos’è GitHub? – Git vs GitHub
Come detto, Git è un sistema di controllo della versione che tiene traccia delle modifiche quando si lavora con i codici del computer mentre GitHub è un servizio di hosting di repository di controllo della versione Git basato sul Web. Fornisce tutte le funzionalità di controllo della versione distribuita e gestione del codice sorgente (SCM) di Git mentre lo completa con alcune delle sue funzionalità. È un paradiso per gli sviluppatori in cui possono archiviare i loro progetti e connettersi con persone che la pensano allo stesso modo. Puoi pensarlo come “cloud per codici”.
Quindi fondamentalmente è un posto dove archiviare le tue directory o repository di lavoro identici . È letteralmente un hub per i repository Git che puoi utilizzare, semplicemente creando un account gratuito su GitHub. Questi account sono dotati di un abbondante spazio di archiviazione in cui puoi archiviare i tuoi repository e creare un profilo adeguato che ha un grande valore. Per impostazione predefinita, i repository sono pubblici, ovvero tutti possono vedere i tuoi codici ma puoi anche renderlo privato. Quindi, se sei un buon programmatore, puoi caricare le tue applicazioni e i tuoi programmi e ottenere il riconoscimento dagli altri.
Funziona insieme alla collaborazione di Git. Mentre Git è uno strumento da riga di comando, GitHub è un’interfaccia grafica basata sul Web che fornisce il controllo degli accessi, strumenti di gestione delle attività di base insieme a diverse funzionalità di collaborazione. Inoltre, GitHub può ospitare i codici sorgente del tuo progetto in vari linguaggi di programmazione e tenere traccia di ciascuna delle modifiche apportate ad ogni iterazione. Le funzionalità di GitHub non finiscono qui. Fornisce le seguenti 3 straordinarie caratteristiche che lo rendono così potente:
- fork: o comunemente noto come fork è la copia di un repository dall’account di un utente quando non si dispone dell’accesso in scrittura ad esso. Quindi puoi semplicemente copiarlo e modificarlo con il tuo account.
- pull: Quando hai apportato le modifiche ai codici che hai copiato e vuoi condividerle con il suo ordine originale. Quindi puoi inviare loro una notifica chiamata “richiesta pull”.
- unisci: ora l’utente che è il proprietario di quei codici, se trova le tue modifiche rilevanti, può unire le modifiche trovate nel tuo repository con il repository originale, semplicemente facendo clic sul pulsante.
Se la tua richiesta pull viene accettata dal proprietario, ottieni il suo credito sul sito originale e viene visualizzato nel tuo profilo utente. È una specie di curriculum che aiuta il responsabile del progetto GitHub a determinare la tua reputazione. Quindi, più persone e progetti su GitHub, migliore è l’idea che un responsabile del progetto ha dei suoi potenziali contributori. Questo incoraggia i giovani sviluppatori e progetti a crescere di più nel settore.Spero che ora tu capisca cos’è Github. Quindi permettetemi ora di riassumere le differenze di base tra Git e Github.
Git vs GitHub
1. È un software | 1. È un servizio |
2. È installato localmente sul sistema | 2. È ospitato sul Web |
3. È uno strumento da riga di comando | 3. Fornisce un’interfaccia grafica |
4. È uno strumento per gestire diverse versioni di modifiche, apportate ai file in un repository git | 4. È uno spazio per caricare una copia del repository Git |
5. Fornisce funzionalità come la gestione del codice sorgente del sistema di controllo della versione | 5. Fornisce funzionalità di Git come VCS, Gestione del codice sorgente oltre ad aggiungere alcune delle proprie funzionalità |