Quindi sei incappato in un progetto su GitHub e vorresti contribuire a quel progetto. Ma come? Non ti consideri uno sviluppatore e la terminologia di controllo delle fonti ti è estranea. Non preoccuparti. La risposta è una richiesta di pull di Git (PR).
In questo tutorial, imparerai come contribuire a un progetto GitHub con una richiesta di pull di Git per inserire il tuo codice in un repository GitHub (repo).
Contribuire a un progetto GitHub
Probabilmente hai già visto almeno un progetto GitHub in cui senti di poter aiutare a correggere alcuni bug, aggiornare una documentazione o aggiungere una nuova funzionalità. Vuoi partecipare ma, come molti altri professionisti IT, non ti consideri un sviluppatore software.
Git e GitHub sono tradizionalmente stati esclusivamente nello spazio di sviluppo. Ma con sempre più infrastrutture che si spostano sul cloud e con l’arrivo degli strumenti di Infrastructure as Code, gli amministratori di sistema hanno iniziato a esplorare di più GitHub.
Molti professionisti IT non sanno da dove iniziare. Quindi, in questo articolo, imparerai da zero come contribuire con il codice a un progetto GitHub esistente con le richieste di pull.
Cos’è una Pull Request?
Quando hai un codice/fix che aggiungerà più funzionalità o darà più valore a un progetto o repository esistente su GitHub, puoi creare una pull request.
Anche se una pull request è un’azione singola, il risultato finale (ottenere il tuo codice nel repository GitHub di qualcun altro) coinvolge cinque fasi approssimative che imparerai in questo tutorial.
1. Forking o “copiare” il repository originale nel tuo account GitHub
Il termine “forking” viene talvolta confuso con il termine “cloning”. Git e GitHub sono due prodotti separati. “Forking” è un termine di GitHub che crea una replica di un repository GitHub su GitHub. “Cloning” è un termine di Git che si riferisce alla creazione di un repository Git locale sul tuo computer scaricando un repository Git remoto.
2. Committing il codice nel nostro repository fork personale e pushing quel codice nel repository GitHub
3. Inviare una pull request al proprietario del repository
4. Il proprietario del repository revisiona e approva le tue modifiche nella pull request
5. Il proprietario del repository unisce le tue modifiche al branch principale
Prerequisiti
Per seguire le dimostrazioni in questo tutorial, assicurati di avere quanto segue:
- A GitHub account
- A GitHub repo to request changes to – This tutorial will use a repo called git-pull-requests.
- Git – Questo tutorial utilizzerà Git su Windows in una directory di lavoro di C:\Git.
- Git configurato per funzionare con il tuo account GitHub
Fare il fork del Repo GitHub
Poiché non è possibile apportare modifiche dirette al repo GitHub di qualcun altro, è necessario prima creare il proprio. Per farlo, è necessario fare il fork o creare una copia del repo nel proprio account GitHub. Per farlo:
1. Apri il tuo browser preferito, vai su GitHub e accedi.
2. Vai al repo del tutorial o del repo a cui desideri contribuire, come puoi vedere di seguito.

3. Nell’angolo in alto a destra, fai clic sul pulsante Fork. Questo pulsante creerà automaticamente una copia di quel repository nel tuo account.

Una volta fatto il fork, dovresti vedere lo stesso repository nella tua lista dei repository. Puoi anche vedere di seguito che questo repo è stato forked from Adam-the-Automator\git-pull-requests.

Commit delle nuove modifiche sul tuo fork personale
Ora che hai la tua copia personale del repo nel tuo account GitHub, è tempo di apportare le modifiche. Puoi apportare modifiche al codice in un repo GitHub in due modi: direttamente tramite github.com o localmente tramite Git. Copriamo entrambi i modi.
Commit del codice tramite github.com
Il modo più semplice per apportare modifiche al codice in un repository GitHub è semplicemente utilizzare il browser web. Utilizzando github.com, non è necessario preoccuparsi di configurare alcun tipo di software in locale. Tuttavia, utilizzare il browser web diventerà presto un problema se è necessario apportare modifiche moderatamente complesse.
Presumendo che tu stia ancora guardando il repository clonato nel browser:
1. Fai clic sullo script SampleText.ps1 nel tuo repository clonato e fai clic sull’icona della matita per modificarlo.

2. Apporta le modifiche al file e fai clic sul pulsante Commit changes come mostrato di seguito, aggiungendo eventualmente un messaggio di commit.

Commit tramite Git
Se prevedi di apportare più di una semplice modifica a un file nel repository GitHub, dovresti utilizzare Git. Git ti consente di clonare l’intero repository sul tuo computer locale e lavorare sul codice nel tuo editor di codice preferito.
Clonazione
Per lavorare sul codice del repository clonato in locale, dovrai prima clonare l’intero repository sul tuo computer locale con Git. Per farlo:
Assumendo che tu sia ancora nel tuo repository clonato su github.com:
1. Fai clic sul pulsante Code e copia l’URL nella sezione HTTPS.

2. Successivamente, apri una console della riga di comando sul tuo computer. Questo tutorial utilizzerà Windows PowerShell.
3. Crea una directory per memorizzare il repository clonato e esegui git clone
puntandolo all’URL copiato dal passaggio precedente.

Commit e Push dei file locali
Dopo aver clonato il repository Git, è il momento di modificare il file e commettere tali modifiche nel repository. Per farlo:
1. Apri il tuo editor di codice preferito, modifica e salva lo script C:\SampleText.ps1.
2. Nella finestra del terminale, assicurati che la tua directory di lavoro sia C:\Git e esegui il seguente comando. Il comando git add
aggiunge il file al repository Git locale ma non lo salva. Inizia semplicemente a tenerne traccia.
3. Successivamente, committa o salva tutti i file tracciati nel repository Git con il comando git commit
. Assicurati di includere anche una spiegazione delle modifiche (messaggio di commit) con il parametro -m
.

4. Ora che il repository Git locale contiene il file modificato, pusha quella modifica nel repository GitHub con il comando git push
. Dovresti ricevere una finestra che ti chiede di fornire il tuo nome utente e password di GitHub per autenticarti nel tuo repository GitHub forkato.
5. Una volta fornito il tuo nome utente e password di GitHub, dovresti vedere Git fornire alcune informazioni di stato come indicato di seguito.

Invio di una richiesta di pull
A questo punto, hai una copia del repository GitHub a cui desideri contribuire (forked) nel tuo account GitHub con la modifica che desideri richiedere al proprietario del repository GitHub. È ora il momento di inviare una richiesta di pull per chiedere al proprietario di accettare la tua modifica.
1. Naviga nel tuo repository forked su GitHub.
2. Fai clic su Pull Requests (Richieste di pull) e su New pull request (Nuova richiesta di pull) come mostrato di seguito.

3. Nella pagina della richiesta di pull, vedrai i due repository che verranno confrontati e ogni commit che stai richiedendo di unire al repository GitHub del proprietario. Fai clic su Create pull request (Crea richiesta di pull).

4. Fornisci un titolo per la richiesta di pull e fai clic su Create pull request (Crea richiesta di pull).

Vedrai quindi sul repository GitHub originale, una richiesta di pull apparirà. A questo punto, il tuo lavoro è terminato ed è ora di aspettare il proprietario.
Revisione e accettazione di una richiesta di pull
Appena crei una richiesta di pull, comparirà sotto Pull Request (Richiesta di pull) nel repository GitHub originale come mostrato di seguito.

A questo punto, il proprietario potrà fornirti commenti con cui potrai collaborare sulla richiesta di pull. Oppure, potrà semplicemente unirla immediatamente facendo clic su Merge pull request (Unisci richiesta di pull).
Una volta che uniscono la richiesta di pull con il codice originale, la richiesta di pull passerà allo stato Merged (Unita) e il codice sarà unito al repository originale!

Ora puoi vedere che sei un collaboratore del file che hai modificato ed è stato unito.

Conclusione
In questo tutorial, hai imparato ogni passaggio su come creare una richiesta di pull di Git. Le richieste di pull sono un ottimo modo per collaborare su repository GitHub.
Ora che sai come contribuire ai progetti GitHub, quale sarà il tuo prossimo repository a cui contribuirai?