Completare, abbandonare o ripristinare le richieste pull

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Dopo che tutti i revisori necessari approvano la richiesta pull e la richiesta pull soddisfa tutti i requisiti dei criteri di ramo , è possibile unire le modifiche nel ramo di destinazione e completare la richiesta pull. In alternativa, se si decide di non procedere con le modifiche nella richiesta pull, è possibile abbandonare la richiesta pull.

Per risolvere le modifiche dei revisori e rispondere ai commenti di revisione e risolverli, vedere Risolvere i commenti.

Prerequisiti

  • I repository devono essere abilitati nel progetto. Se l'hub Repos e le pagine associate non vengono visualizzate, vedere Attivare o disattivare un servizio Azure DevOps per riabilitare Repos.

  • Per completare la richiesta pull, è necessario essere membri del gruppo di sicurezza Collaboratori o disporre delle autorizzazioni corrispondenti nel progetto in cui si trova la richiesta pull.

  • Per contribuire a una richiesta pull, è necessario essere membri del gruppo di sicurezza Lettori o disporre delle autorizzazioni corrispondenti.

  • Per visualizzare o esaminare le richieste pull, è necessario avere accesso Basic o superiore al progetto Azure DevOps.

  • Se non sei membro del progetto a cui vuoi contribuire, aggiungi.

    Nota

    Per i progetti pubblici, gli utenti a cui è concesso l'accesso degli stakeholder hanno accesso completo ad Azure Repos.

  • I repository devono essere abilitati nel progetto. Se l'hub Repos e le pagine associate non vengono visualizzate, vedere Attivare o disattivare un servizio Azure DevOps per riabilitare Repos.
  • Per completare una richiesta pull, è necessario essere membri del gruppo di sicurezza Collaboratori o disporre delle autorizzazioni corrispondenti nel progetto da modificare.
  • Per contribuire a una richiesta pull, è necessario essere membri del gruppo di sicurezza Lettori o disporre delle autorizzazioni corrispondenti.
  • Per visualizzare o esaminare le richieste pull, è necessario essere membri del progetto Azure DevOps con accesso di base o versione successiva. Se non si è membri del progetto, viene aggiunto.
  • In Azure DevOps Services è possibile gestire le richieste pull e altre risorse dall'interfaccia della riga di comando di Azure con l'estensione azure-devops . Per informazioni su come usare l'interfaccia della riga di comando di Azure DevOps Services, vedere Introduzione all'interfaccia della riga di comando di Azure DevOps. I comandi dell'interfaccia della riga di comando di Azure Repos per le richieste pull usano az repos pr.

Controllare le modifiche di merge

Al termine di una richiesta pull, Git aggiunge un nuovo commit di merge alla fine del ramo principale. Questo commit di merge collega le cronologie precedenti del ramo principale e del ramo di origine della richiesta pull. Per visualizzare il commit di merge di anteprima e verificare la presenza di conflitti di unione, selezionare il menu Altre opzioni in alto a destra in una pagina Panoramica della richiesta pull e quindi selezionare Visualizza modifiche unione.

Se il ramo di destinazione è stato modificato dopo la creazione della richiesta pull, selezionare Riavvia unione per creare un nuovo commit di merge di anteprima e aggiornare la visualizzazione delle differenze di modifica unione.

Screenshot che mostra le opzioni Visualizza unione e Riavvia unione nel menu Altre opzioni di P R.

Esaminare i criteri dei rami

Teams può impostare criteri di succursale che richiedono richieste pull in rami protetti per soddisfare criteri specifici prima che le richieste pull possano essere unite. È possibile visualizzare i criteri dei rami in vigore per la richiesta pull, indipendentemente dal fatto che siano necessari per l'unione e se la richiesta pull sta passando o non riesce.

La scheda Panoramica pull riepiloga i criteri dei rami che passano o hanno esito negativo per la richiesta pull. La panoramica elenca solo i criteri non riusciti, ma è possibile visualizzare tutti i controlli dei criteri selezionando Visualizza <n> controlli.

Nella pagina Panoramica della richiesta pull i requisiti dei criteri di ramo hanno un'icona . Selezionare Altre opzioni accanto al requisito e quindi selezionare Visualizza criterio per passare alla pagina Criteri di ramo del ramo in Project Impostazioni.

Screenshot che mostra Visualizzare i criteri accanto a un requisito dei criteri di ramo in un R P.

Completare una richiesta pull

Dopo aver risolto eventuali conflitti di merge e la richiesta pull soddisfa tutti i criteri di ramo e ha tutte le approvazioni necessarie, è possibile completare la richiesta pull.

  1. Selezionare Completa in alto a destra per completare la richiesta pull. In alternativa, selezionare la freccia a discesa accanto al pulsante Completa e selezionare una delle opzioni.

    Screenshot che mostra le opzioni del pulsante Completa per P R.

    • Completa: completare la richiesta pull e unire le modifiche al ramo di destinazione.
    • Impostare il completamento automatico: configurare la richiesta pull per completare e unire una volta soddisfatti tutti i criteri di ramo necessari.
    • Contrassegna come bozza: restituisce la richiesta pull allo stato bozza e rimuove tutti i voti.
    • Abbandono: chiudere la richiesta pull senza unire le modifiche.
  2. Nel riquadro Completa richiesta pull, in Tipo di unione selezionare una delle opzioni di unione.

    Screenshot che mostra la finestra di dialogo P R completa.

    • Merge (senza avanzamento rapido): unisci con una cronologia non lineare che mantiene tutti i commit.
    • Commit di squash: unisci con una cronologia lineare che combina tutti i commit di origine in un singolo commit nella destinazione o lo squash unisce la richiesta pull. Tenere presente che verrà creato un nuovo commit per il ramo di destinazione senza mantenere la cronologia dei commit dal ramo di origine.
    • Rebase e fast-forward: rebase the source commits on the target and fast-forward ( Ribase the source commits on the target and fast-forward).
    • Unione semi-lineare: esegue il commit dell'origine di rebase nella destinazione e crea un'unione a due elementi padre.

    Nota

    I criteri esistenti vengono applicati. Ad esempio, se il ramo dispone attualmente di un criterio "solo merge squash", è necessario modificare tale criterio se si vuole usare un altro tipo di unione.

  3. Selezionare una delle opzioni di post-completamento seguenti. Alcune opzioni non sono disponibili per alcuni tipi di merge.

    • Completare gli elementi di lavoro associati dopo l'unione: completare tutti gli elementi di lavoro collegati.
    • Eliminare <il nome> del ramo dopo l'unione: eliminare il ramo di origine della richiesta pull dopo l'unione.
    • Personalizzare il messaggio di commit di merge: aggiungere un messaggio di commit di merge personalizzato. Se si seleziona questa opzione, aggiornare il messaggio di commit di merge .
    • Eseguire l'override dei criteri dei rami e abilitare l'unione. Forzare l'unione anche se la richiesta pull non soddisfa tutti i criteri di ramo. Questa opzione è disponibile solo se si dispone dell'autorizzazione esentata dall'imposizione dei criteri.
  4. Selezionare Completa merge.

  1. Selezionare Completa in alto a destra per completare la richiesta pull. In alternativa, selezionare la freccia a discesa accanto al pulsante Completa e selezionare una delle opzioni seguenti:

    Screenshot che mostra le opzioni del pulsante Completa per la richiesta pull.

    • Completa: completare la richiesta pull e unire le modifiche al ramo di destinazione.
    • Impostare il completamento automatico: se si dispone di criteri di ramo, configurare la richiesta pull per completare e unire una volta soddisfatti tutti i criteri di ramo necessari.
    • Abbandono: chiudere la richiesta pull senza unire le modifiche.
  2. Nella schermata Completa richiesta pull immettere il messaggio per il commit di merge e aggiornare la descrizione della richiesta pull.

    Finestra di dialogo Completa richiesta pull

  3. Selezionare una delle opzioni seguenti:

    • Completare gli elementi di lavoro collegati dopo l'unione per completare tutti gli elementi di lavoro collegati.

    • Eliminare <branch name> dopo l'unione per eliminare il ramo di origine dalla richiesta pull.

    • Modifica di squash durante l'unione per unire la richiesta pull. Tenere presente che verrà creato un nuovo commit per il ramo di destinazione senza mantenere la cronologia dei commit dal ramo di origine.

    • Eseguire l'override dei criteri dei rami e abilitare l'unione per forzare l'unione di un ramo anche se non soddisfa tutti i criteri di ramo. Questa opzione è disponibile solo se si dispone di autorizzazioni di imposizione dei criteri esentate.

      Nota

      I criteri esistenti vengono ancora applicati. Ad esempio, se il ramo dispone attualmente di un criterio "solo merge squash", è necessario modificare tale criterio per usare gli altri tipi di merge.

  4. Selezionare Completa merge.

Al termine dell'unione, tutti gli elementi di lavoro collegati vengono aggiornati automaticamente per visualizzare il completamento della richiesta pull.

Screenshot degli elementi di lavoro collegati con P Rs completato.

Ribase durante il completamento della richiesta pull

Durante il completamento della richiesta pull non sono possibili alcune situazioni:

  • Se un criterio nel ramo di destinazione impedisce l'uso di strategie di ribase, è necessaria l'autorizzazione Override dei criteri dei rami per la ribase.
  • Se il ramo di origine della richiesta pull dispone di criteri, non è possibile ripristinarlo. La ribasatura modifica il ramo di origine senza passare attraverso il processo di approvazione dei criteri.
  • Se è stata usata l'estensione dei conflitti di merge per risolvere i conflitti di merge, non è possibile eseguire nuovamente la base. Le risoluzioni dei conflitti applicate a un'unione a tre vie raramente hanno esito positivo o valido quando si ribasano singolarmente tutti i commit della richiesta pull.

In tutti questi casi, è comunque possibile ribasere il ramo in locale e quindi eseguire il push upstream o unire le modifiche al termine della richiesta pull.

Problema di base di unione multipla

In alcuni casi, una richiesta pull ha più di una vera base di merge e questa situazione può causare problemi di sicurezza. Se i file nella richiesta pull hanno versioni diverse tra le basi di merge, si genera un avviso che indica la presenza di una base di merge multipla. Per altre informazioni e correzione, vedere Più basi di merge.

Risolvere i conflitti di unione

Le modifiche apportate ai file nel ramo possono essere in conflitto con le modifiche in un altro ramo. Quando non è chiaro come unire le modifiche, Git mostra i file in conflitto nella pagina Panoramica della richiesta pull. È necessario risolvere eventuali conflitti di unione tra il ramo pr e il ramo di destinazione prima di poter unire una richiesta pull o impostare la richiesta pull su completamento automatico. Per istruzioni sulla risoluzione dei conflitti di merge, vedere Risolvere i conflitti di merge.

Screenshot che mostra i conflitti di unione nella scheda Panoramica di un P R.

Impostare una richiesta pull per il completamento automatico

Selezionare Imposta completamento automatico nell'elenco a discesa Completa per completare e unire le modifiche della richiesta pull non appena le condizioni soddisfano tutti i criteri dei rami. Al termine della richiesta pull, si riceve una notifica tramite posta elettronica. Se un conflitto o un errore impedisce il completamento della richiesta pull, invia una notifica tramite posta elettronica al problema.

Nota

L'opzione Imposta completamento automatico è disponibile in Azure Repos e TFS 2017 e versioni successive quando si dispone di criteri di ramo. Se non viene visualizzato Impostare il completamento automatico, non sono presenti criteri di ramo. Per altre informazioni, vedere Criteri di ramo.

Per impostazione predefinita, una richiesta pull impostata su completamento automatico attende solo sui criteri richiesti. Nel pannello Abilita completamento automatico è possibile scegliere di attendere anche i criteri facoltativi.

Screenshot che mostra la modifica di un criterio facoltativo in obbligatorio nel pannello Abilita completamento automatico.

A partire da TFS 2018 Update 2, nella pagina Panoramica della richiesta pull viene visualizzato l'elenco dei criteri in sospeso che la richiesta pull è in attesa. Se si imposta un criterio da richiedere nel pannello Abilita completamento automatico, è possibile impostarlo su facoltativo nella pagina Panoramica .

Selezionare Annulla completamento automatico per disattivare il completamento automatico.

Screenshot di una richiesta pull nello stato di completamento automatico.

Screenshot di una richiesta pull nello stato di completamento automatico.

Una richiesta pull impostata sul completamento automatico visualizza un badge di completamento automatico nella pagina Richieste pull.

Screenshot che mostra una richiesta pull di completamento automatico nell'elenco delle richieste pull.

Abbandonare o riattivare una richiesta pull

Per abbandonare le modifiche e la richiesta pull senza unire, selezionare Abbandona dall'elenco a discesa nel pulsante Completa . È comunque possibile visualizzare la richiesta pull abbandonata e rimane collegata agli elementi di lavoro.

Per riattivare una richiesta pull abbandonata in qualsiasi momento, aprire la richiesta pull dalla scheda Abbandonata nella visualizzazione Richiesta pull e selezionare Riattiva in alto a destra.

Ripristinare una richiesta pull completata

Per annullare le modifiche da una richiesta pull, seguire questa procedura. Per altre informazioni, vedere Annullare le modifiche.

  1. Aprire la richiesta pull completata e selezionare Ripristina. Questa azione crea un nuovo ramo con modifiche che annullano la richiesta pull in un ramo di destinazione esistente nel repository.

  2. Nel riquadro Ripristina richiesta pull:

    1. In Ramo di destinazione selezionare il ramo in cui si desidera annullare le modifiche della richiesta pull.
    2. In Nome ramo argomento obbligatorio modificare il nome del ramo di aggiornamento pull, se necessario.
    3. Selezionare Ripristina.
  3. Nella schermata Nuova richiesta pull selezionare Crea.

  4. Unire la nuova richiesta pull per completare il ripristino.

Nota

Il ramo creato durante questo ripristino ha un singolo commit che ripristina tutte le modifiche apportate al file dalla richiesta pull originale. Il ramo non contiene un commit ripristinato per ognuno dei commit nella richiesta pull originale.

Passaggi successivi