Vai al contenuto
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Che cos'è GitHub? Repository, branch e il tuo primo progetto

GitHub spiegato a chi comincia: che cosa fanno Git e GitHub, i termini che ti servono, una prova locale con Git e come controllare un progetto prima di eseguirlo.

Base5 min di letturaDi NotHoly

GitHub è un sito dove le persone conservano, condividono e revisionano progetti software. La maggior parte di quei progetti è tracciata con Git, uno strumento di controllo di versione che registra ogni modifica a un insieme di file. GitHub tiene online i repository Git, aggiunge un'interfaccia web e dà ai team pull request, issue e release per lavorare insieme sul codice.

La risposta breve: Git è lo strumento, e GitHub è uno dei posti dove i progetti Git vengono ospitati e discussi.

Git e GitHub sono due strumenti separati

Git gira sul tuo computer. Puoi trasformare qualsiasi cartella in un repository e registrare le modifiche senza connessione a internet e senza un account GitHub.

GitHub è un servizio online. Conserva copie dei repository Git, mostra file e cronologia in un browser e aggiunge funzioni come il tracciamento delle issue e le pull request. Anche altri servizi ospitano repository Git, quindi GitHub è solo uno dei posti in cui stanno i progetti Git.

Cinque termini da imparare per primi

  • Repository (repo): la cartella di un progetto insieme alla sua cronologia completa delle modifiche.
  • Commit: un'istantanea salvata delle modifiche, con un messaggio che le spiega.
  • Branch: una linea separata di commit. Lavori su un branch così la linea principale resta stabile mentre provi un'idea.
  • Pull request: una richiesta di unire i commit di un branch in un altro, di solito dopo che qualcuno ha revisionato le differenze.
  • Release: una versione con un nome che i maintainer hanno scelto di pubblicare, spesso con file scaricabili allegati.

Il modo più rapido per capire che cosa significano queste parole è creare un repository tu stesso.

Fai pratica con Git sulla tua macchina

Per imparare le basi non ti serve GitHub. Installa Git dal sito ufficiale git-scm.com, poi controlla la versione installata:

bash
git --version

Sulla macchina Windows su cui è stato verificato questo articolo, il comando ha stampato:

text
git version 2.49.0.windows.1

Il tuo output mostrerà una versione diversa. Adesso imposta il nome e l'email che Git associa a ogni commit. Usa i tuoi valori:

bash
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

Ora crea un repository di prova con due branch e due commit:

bash
mkdir security-learning-notes
cd security-learning-notes
git init
printf '# security-learning-notes\n' > README.md
git add README.md
git commit -m "Add README"
git switch -c add-glossary
printf -- '- DNS\n- HTTPS\n- hash\n- encryption\n' > glossary.md
git add glossary.md
git commit -m "Add glossary terms"
git branch

Sul repository così creato, git branch ha stampato questo:

text
* add-glossary
  master

L'asterisco indica il branch su cui ti trovi. Il tuo branch predefinito può chiamarsi master o main, a seconda delle impostazioni di Git. Su Windows, Git può anche stampare avvisi sulle terminazioni di riga. Quegli avvisi non cambiano i commit.

Metti il progetto su GitHub

La guida Hello World di GitHub illustra questo flusso nel browser. Menu e nomi dei pulsanti cambiano nel tempo, quindi segui la guida ufficiale se il tuo schermo non corrisponde a questo testo:

  1. Crea un account su github.com.
  2. Crea un nuovo repository chiamato security-learning-notes. Scegli pubblico o privato.
  3. Aggiungi un file README.md con una frase che descrive il progetto.
  4. Crea un branch chiamato add-glossary.
  5. Aggiungi un breve elenco di termini e fai il commit della modifica.
  6. Apri una pull request, leggi il diff e fai il merge.

Il passaggio della pull request conta anche in un repository personale. La vista del diff mostra esattamente quali righe sono cambiate prima che qualcosa arrivi al branch principale.

Per mandare un repository locale su GitHub, crea un repository vuoto sul sito, poi collegalo dal terminale. OWNER e REPOSITORY sono segnaposto. Sostituisci main con il nome del tuo branch se git branch mostra master:

bash
git remote add origin https://github.com/OWNER/REPOSITORY.git
git push -u origin main

Scaricare un progetto

Un git clone copia un repository con tutta la sua cronologia:

bash
git clone https://github.com/OWNER/REPOSITORY.git

Sostituisci OWNER e REPOSITORY con il proprietario e il nome che vedi nella barra degli indirizzi della pagina del progetto. La clonazione scarica i file. Non esegue niente del progetto e non dimostra che il progetto sia sicuro. Un download ZIP dal sito ti dà i file senza cronologia, il che va bene per leggerli, ma così perdi la traccia dei commit.

Controlla un progetto prima di eseguirlo

Prima di eseguire uno strumento che non hai mai usato, controlla il repository stesso:

  • È il progetto upstream ufficiale, o un fork con un proprietario sconosciuto?
  • C'è una licenza, e il README elenca i requisiti in modo chiaro?
  • Il progetto pubblica delle release? Se pubblica checksum o firme, verifica con quelli il file che hai scaricato.
  • install.sh o uno script di setup cambia i pacchetti di sistema, installa servizi o chiede diritti di amministratore?
  • Di quali connessioni di rete e permessi avrà bisogno lo strumento?
  • Puoi provarlo prima in un container o in una macchina virtuale usa e getta?

Leggi gli script di installazione prima di eseguirli. Un README che ti dice di incollare un comando in un terminale ti sta chiedendo di eseguire del codice sulla tua macchina.

Gli strumenti di sicurezza servono per il lavoro dentro il perimetro. Fai pratica su macchine tue, su un laboratorio che hai costruito o su bersagli per cui hai un permesso scritto di test.

Errori comuni di chi comincia

Confondere Git con GitHub è un errore frequente. Git funziona sul tuo computer e non ha bisogno di nessun sito. GitHub è un servizio costruito attorno a Git.

Il secondo è fare il commit di segreti. Un token o una password finiti in un repository pubblico possono essere copiati da chiunque li trovi. Cancellare la riga in un commit successivo non la toglie dalla cronologia. Prima revoca la credenziale, poi segui la guida di GitHub per rimuovere i dati sensibili da un repository.

Il terzo è eseguire i comandi di un README senza leggerli. Gli script di installazione possono cambiare il tuo computer, quindi leggili prima di eseguirli.

Prossimo passo

Il prossimo articolo di questo percorso spiega come creare un account GitHub e il tuo primo repository. Quando queste basi ti verranno naturali, potrai cominciare a guardare gli strumenti di sicurezza. Prova ciascuno in un laboratorio tuo prima di affidargli qualcosa di reale.

Fonti

  1. GitHub Docs: Hello World
  2. Pro Git: About Version Control
  3. Git documentation: git-clone
  4. GitHub Docs: About pull requests
  5. GitHub Docs: Removing sensitive data from a repository

Altro su Linux e strumenti per sviluppatori

Linux e strumenti per sviluppatori

Basi di Bash per il lavoro di sicurezza

Impara pipe, redirezioni, variabili, loop, codici di uscita e set -euo pipefail, poi usali per contare gli accessi falliti e calcolare l'hash di una cartella.

Base13 min di lettura

Linux e strumenti per sviluppatori

Permessi Linux: utenti, gruppi, chmod e umask

Proprietari e gruppi Linux, bit rwx, chmod, umask e setuid, con un lab che prova l'accesso come secondo utente e trova i permessi rischiosi sui file.

Base13 min di lettura

Linux e strumenti per sviluppatori

Chiavi SSH: come funzionano e come usarle in sicurezza

Come funzionano le chiavi host e utente di SSH, perché la scelta predefinita è Ed25519 con passphrase e come impostare un accesso con chiave e fare hardening su una VM di laboratorio tua.

Base11 min di lettura