Che cosa sono le richieste pull?

Completato

Iniziamo con:

  • Verifica dei rami e della loro importanza per il pull delle richieste.
  • Definizione di una richiesta pull.
  • Informazioni sulla creazione di una richiesta pull, sulla revisione degli stati delle richieste pull e sull'unione di una richiesta pull.

Rami

Prima di tutto, definiamo quali rami sono, 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 lavoro senza influire sugli altri utenti nel repository. Consentono di sviluppare funzionalità, correggere i bug e sperimentare in modo sicuro nuove idee in un'area contenuta del repository.

Gli sviluppatori che lavorano su rami indipendenti sono un concetto comune nello sviluppo di software moderno. Avendo il proprio ramo, uno sviluppatore può apportare qualsiasi modifica, denominata commit, senza doversi preoccupare del modo in cui i commit influiscono sugli altri sviluppatori che lavorano sui propri rami.

Merge di rami

Anche se ogni sviluppatore lavora in un ramo separato è ideale per la produttività individuale, apre una nuova sfida. A un certo punto, il ramo di ogni sviluppatore deve essere unito in un ramo comune, ad esempio main. Man mano che i progetti vengono ridimensionati, possono verificarsi molte unioni che devono verificarsi e diventa sempre più importante tenere traccia ed esaminare ogni unione. La necessità di tenere traccia di più modifiche a un progetto è la posizione in cui arrivano 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 (main). Le richieste pull consentono agli stakeholder di esaminare e discutere le modifiche proposte per garantire che la qualità del codice nel ramo di base venga mantenuta il più possibile elevata.

Affinché i due rami vengano uniti, devono essere diversi l'uno dall'altro:

  • Il ramo di confronto è il ramo dello sviluppatore, che contiene le modifiche specifiche apportate.
  • Il ramo di 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 visualizzata la visualizzazione di confronto dei rami.

Crea una richiesta pull

Si esaminerà ora come creare una richiesta pull.

  1. In GitHub.compassare alla pagina principale del repository.

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

    Screenshot of creating a new branch and naming it.

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

    Screenshot of a yellow text box, highlighting the green compare and pull request button.

  4. Nel menu a discesa ramo di base selezionare il ramo in cui unire le modifiche. Selezionare quindi il menu a discesa Confronta ramo per selezionare il ramo dell'argomento 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 richiesta pull bozza, selezionare l'elenco a discesa e selezionare Crea richiesta pull bozza, quindi selezionare Bozza richiesta pull.

Stati delle richieste pull

Esaminiamo ora i diversi stati di una 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 i proprietari del codice non vengono richiesti automaticamente per esaminare le richieste pull bozza.

  • Apri richiesta pull: lo stato aperto indica che la richiesta pull è attiva e non è ancora stata unita al ramo di base. È comunque possibile eseguire commit e discutere ed esaminare le potenziali modifiche con i collaboratori.

  • Richiesta pull chiusa: è possibile scegliere di chiudere una richiesta pull senza unirla al ramo di base/main. 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 di base. Chiunque disponga dell'accesso push al repository può completare l'unione.

Unire una richiesta pull

  1. Sotto il nome del repository selezionare Richieste pull.

    Screenshot of the top navigation bar of a repo with the Pull request tab highlighted.

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

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

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

      Screenshot of the dropdown menu of the green merge pull request button with the Create a merge commit selected.

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

    • L'opzione Rebase e merge consente di eseguire commit senza un commit di merge. Questa opzione consente di ignorare un'unione mantenendo una cronologia di progetto lineare. Selezionare il menu a discesa unione, quindi scegliere l'opzione Rebase e merge e quindi selezionare il pulsante Ripristina e unisci .

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

  5. Se sono presenti più indirizzi di posta elettronica associati all'account in GitHub.com, selezionare il menu a discesa indirizzo di posta elettronica e selezionare l'indirizzo di posta elettronica da usare come indirizzo di posta elettronica dell'autore Git. In questo menu a discesa vengono visualizzati solo gli indirizzi di posta elettronica verificati. Se è stata abilitata la privacy dell'indirizzo di posta elettronica, un messaggio di posta elettronica GitHub senza risposta è l'indirizzo di posta elettronica dell'autore del commit predefinito.

    Screenshot of a commit change with a description box and the drop-down menu of the email to select as the author of the commit.

  6. Selezionare Conferma unione, Conferma squash e merge oppure Conferma ribase e merge.

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

Successivamente, si completa un esercizio che accetta ciò che è stato esaminato e lo applica a un esempio reale.