Che cosa sono le richieste pull?

Completato

Iniziamo con:

  • Esaminare i rami e la loro importanza per le richieste di pull.
  • Definizione di cosa sia una richiesta pull.
  • Informazioni su come creare una richiesta pull, esaminare gli stati delle richieste pull e unire una richiesta pull.

Rami

Prima di tutto, definire quali rami esistono, perché sono importanti per gli sviluppatori e come sono correlati alle richieste pull.

I rami sono aree di lavoro isolate in cui è possibile sviluppare il proprio lavoro senza influire sugli altri nel repository. Consentono di sviluppare funzionalità, correggere i bug e sperimentare in modo sicuro nuove idee in un'area contenuta del repository.

Il lavoro degli sviluppatori su rami indipendenti è un concetto onnipresente nello sviluppo di software moderno. Avendo un proprio ramo, uno sviluppatore può apportare tutte le modifiche necessarie, denominate commit, senza preoccuparsi di come i suoi commit influiscono su altri sviluppatori che lavorano ai loro rami.

Merge di rami

Che il lavoro di ogni sviluppatore avvenga su un ramo separato è ideale per la produttività dei singoli, ma comporta un nuovo problema. A un certo punto, il ramo di ogni sviluppatore deve essere unito in un ramo comune, come main. Man mano che i progetti si ingrandiscono, possono essere necessarie numerose unioni e diventa sempre più importante monitorare e rivedere ogni unione. La necessità di tenere traccia di più modifiche a un progetto è il motivo per cui esistono le richieste pull.

Che cos'è una richiesta pull?

Una richiesta pull è un modo per documentare le modifiche del ramo e comunicare che le modifiche dal ramo dello sviluppatore sono pronte per essere unite nel ramo di base (principale). Le richieste pull consentono agli interessati di rivedere e discutere le modifiche proposte, per garantire che la qualità del codice nel ramo di base rimanga più alta possibile.

Affinché i due rami vengano uniti, devono essere diversi tra loro:

  • Il ramo di confronto è il ramo proprietario dello sviluppatore che contiene le modifiche specifiche apportate.
  • Il ramo base, detto anche ramo principale, è il ramo in cui devono essere unite le modifiche.

L'uso più comune del confronto consiste nel confrontare i rami, ad esempio quando si avvia una nuova richiesta pull. Quando si avvia una nuova richiesta pull, viene sempre acquisita una visualizzazione di confronto dei rami.

Crea una richiesta pull

Ora esaminiamo come creare una richiesta pull.

  1. In GitHub.com, passare alla pagina principale del repository.

  2. Nel menu Ramo, selezionare il ramo che contiene i commit.

    Screenshot della creazione e della denominazione di un nuovo ramo.

  3. Sopra l'elenco dei file, nel banner giallo, selezionare il pulsante Confronto e richiesta pull per creare una richiesta pull per il ramo associato.

    Screenshot di una casella di testo gialla che evidenzia il pulsante verde di confronto e richiesta pull.

  4. Nel menu a discesa Ramo base, selezionare il ramo in cui unire le modifiche. Selezionare quindi il menu a discesa Ramo di confronto per selezionare il ramo in cui sono state apportate le modifiche.

  5. Immettere un titolo e una descrizione per la richiesta pull.

  6. Per creare una richiesta pull pronta per la revisione, selezionare il pulsante Crea richiesta pull. Per creare una bozza di richiesta pull, selezionare l'elenco a discesa e scegliere Crea bozza richiesta pull, quindi selezionare Bozza richiesta pull.

Stati della richiesta pull

A questo punto, è possibile esaminare i diversi stati della richiesta pull.

  • Bozza di richiesta pull: quando si crea una richiesta pull, è possibile scegliere di creare una richiesta pull pronta per la revisione o una bozza di richiesta pull. Non è possibile unire una richiesta pull con uno stato bozza e ai proprietari del codice non viene chiesto automaticamente di rivedere le bozze di richieste pull.

  • Richiesta pull aperta: uno stato aperto indica che la richiesta pull è attiva e non è ancora stata unita al ramo base. È comunque possibile eseguire i commit e discutere e rivedere le potenziali modifiche con i collaboratori.

  • Richiesta pull chiusa: è possibile scegliere di chiudere una richiesta pull senza unirla al ramo base/principale. Questa opzione può essere utile se le modifiche proposte nel ramo non sono più necessarie o se viene proposta un'altra soluzione in un altro ramo.

  • Richiesta pull unita: lo stato della richiesta pull unita indica che gli aggiornamenti e i commit del ramo di confronto sono stati combinati con il ramo base. Chiunque disponga dell'accesso push al repository può completare l'unione.

Unire la richiesta pull

  1. Sotto il nome del repository selezionare Richieste pull.

    Screenshot della barra di spostamento superiore di un repository con la scheda Richiesta pull evidenziata.

  2. Nell'elenco Richieste pull, selezionare la richiesta pull da unire.

  3. Scorrere fino alla fine della richiesta pull. A seconda delle opzioni di unione abilitate per il repository, è possibile:

    • Unire tutti i commit nel ramo base selezionando il pulsante Unisci richiesta pull. Se l'opzione Unisci richiesta pull non viene visualizzata, selezionare il menu a discesa di unione, scegliere l'opzione Crea un commit di unione e quindi selezionare il pulsante Crea un commit di unione.

      Screenshot del menu a discesa del pulsante verde di unione richieste pull verde con l'opzione Crea un commit di unione selezionata.

    • Squash e unione consente di eseguire tutti i commit e combinarli in un solo commit. Questa opzione consente di mantenere la cronologia del repository più leggibile e organizzata. Selezionare l'opzione Squash e unione e quindi selezionare il pulsante Squash e unione.

    • L'opzione Riassegnazione e unione consente di creare commit senza un commit di unione. Questa opzione consente di ignorare un'unione mantenendo una cronologia del progetto lineare. Selezionare il menu a discesa di unione, quindi scegliere l'opzione Riassegnazione e unione e quindi selezionare il pulsante Riassegnazione e unione.

  4. Se viene chiesto, immettere un messaggio di commit o accettare il messaggio predefinito.

  5. Se esistono più indirizzi e-mail associati all'account in GitHub.com, selezionare il menu a discesa dell'indirizzo e-mail e scegliere l'indirizzo e-mail da usare come indirizzo e-mail dell'autore Git. In questo menu a discesa vengono visualizzati solo gli indirizzi e-mail verificati. Se è stata abilitata la privacy dell'indirizzo e-mail, nessuna e-mail GitHub senza risposta è l'indirizzo e-mail predefinito dell'autore del commit.

    Screenshot di una modifica commit con una casella di descrizione e il menu a discesa dell'e-mail da selezionare come autore del commit.

  6. Selezionare Conferma unione, Conferma squash e unioneoppure Conferma riassegnazione e unione.

  7. Facoltativamente, è possibile eliminare il ramo di confronto per mantenere ordinato l'elenco dei rami nel repository.

Successivamente, viene completato un esercizio con cui si applica ciò che è stato esaminato a un esempio reale.