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.
La finestra Repository Git contiene tre sezioni principali, come numerato nello screenshot precedente:
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.