Condividi tramite


Esplorare i repository Git e confrontare i rami in Visual Studio

La finestra Modifiche Git offre un modo semplice per interagire con Git durante la codifica senza dover passare dal codice. In alcuni casi, tuttavia, è più opportuno concentrarsi sul repository Git. Ad esempio, potrebbe essere necessario ottenere una buona immagine di ciò che il team sta lavorando o forse confrontare due commit per analizzare un bug.

È possibile lavorare in remoto con il provider Git preferito, ad esempio GitHub o Azure DevOps.

Esplorare i rami locali e remoti

Per iniziare, aprire la finestra Repository Git selezionando Repository Git dal menu Visualizza (o usando il +tasto di scelta rapida CTRL 0, CTRL+R). È anche possibile accedere alla finestra Repository Git selezionando i collegamenti in uscita/in ingresso nella finestra Modifiche Git e sulla barra di stato.

Screenshot that shows the anatomy of the Git Repository window.

La finestra Repository Git contiene tre sezioni principali, come numerato nello screenshot precedente:

  1. Rami: Git consente agli utenti di eseguire il multitasking e sperimentare il codice tramite rami. Se si stanno lavorando a più funzionalità contemporaneamente o se si vogliono esplorare idee senza influire sul codice di lavoro, la diramazione può essere utile.

  2. Grafico: questa sezione visualizza lo stato del ramo. Include tre sottosezioni:

    • In ingresso vengono visualizzati i commit in ingresso che il team ha contribuito.
    • In uscita vengono visualizzati i commit locali che non sono ancora stati inseriti.
    • Cronologia locale mostra il resto dei commit rilevati dal repository locale.
  3. Commit: se si seleziona un commit nella sezione Graph , vengono aperti i dettagli. È possibile controllare le modifiche introdotte da un commit selezionandole, che mostra una differenza. Ad esempio, lo screenshot precedente mostra le modifiche introdotte da un commit nel file Resize.cs .

I tasti di scelta rapida alt+su o freccia GIÙ+alt consentono di spostarsi tra queste sezioni.

È possibile esplorare qualsiasi ramo locale o remoto senza dover cambiare ramo. Quando si trova un commit su cui si vuole concentrarsi, selezionare il pulsante Apri in nuova scheda per aprire il commit in una scheda diversa.

Screenshot of how to open a commit on a new tab.

Screenshot of the tab for commit details.

Suggerimento

Per visualizzare il commit a schermo intero, scollegare la scheda Commit e ingrandire la finestra Commit usando il pulsante Ingrandisci . È anche possibile selezionare la configurazione diff preferita selezionando Configurazione diff (icona a forma di ingranaggio).

Screenshot of full-screen commit details with diff configurations.

Visualizzazione grafico a più rami

Novità con la versione 17.7: quando si apre la finestra Repository Git, si inizia nella visualizzazione a ramo singolo. È quindi possibile selezionare qualsiasi ramo per aggiungere il ramo e i relativi commit a una visualizzazione a grafo a più rami, che aggiunge segnali visivi che lo rendono più efficiente per interagire con più rami.

Screenshot of the multi-graph branch view in Visual Studio.

Sul lato sinistro della visualizzazione Cronologia locale è presente sia la colorazione delle linee che le etichette di ramo che semplificano la traccia dei commit appartenenti a ogni ramo. È possibile usare l'elenco dei rami nella parte superiore della tabella per scorrere più facilmente i rami e sapere immediatamente quali rami vengono visualizzati nel grafico.

Confrontare i commit

Per confrontare due commit nel ramo, usare il tasto CTRL per selezionare i due commit da confrontare. Fare quindi clic con il pulsante destro del mouse su uno di essi e selezionare Confronta commit.

Screenshot of how to compare two commits.

Screenshot of compared commits.

Suggerimento

Analogamente a Dettagli commit, è possibile usare il pulsante Apri in nuova scheda per aprire il confronto in una scheda diversa o ingrandirlo sullo schermo.

Creare un ramo da un commit

In Visual Studio è possibile usare il riquadro Git Graph nella finestra Repository Git per creare rami dai commit precedenti. A tale scopo, fare clic con il pulsante destro del mouse sul commit da cui si vuole creare un nuovo ramo e quindi scegliere Nuovo ramo.

Screenshot of the Git Graph pane of the Git Repository window.

Nota

Il comando equivalente per questa azione è git branch <branchname> [<commit-id>].

Confrontare i rami

Il confronto dei rami offre una panoramica delle differenze tra due rami, che possono essere utili prima di creare una richiesta pull, unirsi o persino eliminare un ramo.

Diagram that illustrates how Git compares branches.

Per confrontare il ramo attualmente estratto con altri rami usando Visual Studio, è possibile usare lo strumento di selezione dei rami ospitato nella barra di stato e la finestra degli strumenti modifiche Git per scegliere qualsiasi ramo locale o remoto da confrontare. Fare clic con il pulsante destro del mouse sul ramo di destinazione e scegliere Confronta con Current Branch. In alternativa, è possibile usare l'elenco di rami nella finestra Repository Git per accedere allo stesso comando.

Animation that shows the branches comparison entry points.

Selezionando Confronta con Current Branch si apre l'esperienza di confronto dei rami in cui è possibile esplorare l'elenco Modifiche e selezionare il file da confrontare.

Screenshot that shows how to compare branches by using the diff view.

Suggerimento

Se si preferisce una diff inline, è possibile usare l'icona a forma di ingranaggio Opzioni di configurazione Diff e passare a una visualizzazione diff inline. Screenshot that shows the Diff Configuration Options that're available to you.

Eseguire il checkout dei commit

L'estrazione di un commit può essere utile in diversi modi. Ad esempio, consente di tornare a un punto precedente nella cronologia del repository in cui è possibile eseguire o testare il codice. Può anche essere utile se si vuole esaminare il codice da un ramo remoto ,ad esempio il ramo di un collega. In questo modo non è necessario creare un ramo locale se non si prevede di contribuire a tale ramo. In questo caso, è sufficiente controllare il suggerimento del ramo remoto che si vuole esaminare.

Diagram that illustrates the Git checkout commit process.

Per estrarre un commit precedente in Visual Studio, aprire la finestra Repository Git, fare clic con il pulsante destro del mouse sul commit a cui si vuole tornare e selezionare Checkout (–detach). Visual Studio mostra una finestra di dialogo di conferma che, controllando un commit, ci si trova in uno stato HEAD scollegato. Ciò significa che head del repository punterà direttamente a un commit anziché a un ramo.

Animation that shows the checkout commit entry points.

Ora che si è in uno stato head scollegato, è possibile eseguire e testare il codice o persino esplorare ed eseguire il commit delle modifiche. Al termine dell'esplorazione e si vuole tornare al ramo, è possibile scegliere di eliminare le modifiche controllando un ramo esistente o scegliendo di mantenere le modifiche creando prima un nuovo ramo .

Importante

I commit creati in uno stato head scollegato non sono associati ad alcun ramo e possono essere sottoposto a Garbage Collection da Git dopo aver estratto un ramo. Questo è il motivo per cui mantenere le modifiche, è consigliabile creare un nuovo ramo prima di controllare un ramo. Ad esempio, il commit di C5 e C6 verrà sottoposto a Garbage Collection se si estrae Main senza creare un nuovo ramo. Diagram that illustrates the detached head commits in Git.

Per altre informazioni sullo stato head scollegato, vedere la documentazione relativa a Git head scollegato.

Controllare il suggerimento di un ramo remoto può essere utile se si vuole esaminare rapidamente una richiesta pull e valutare gli aggiornamenti più recenti. A tale scopo in Visual Studio, assicurarsi prima di tutto di recuperare e ottenere gli aggiornamenti più recenti dal repository remoto. Fare quindi clic con il pulsante destro del mouse sul ramo remoto che si vuole esaminare e selezionare Commit suggerimento di estrazione.

Screenshot that shows the Checkout Tip Commit option.