Condividi tramite


Eseguire un commit Git in Visual Studio

La parte principale di qualsiasi flusso di lavoro Git consiste nel modificare i file ed eseguire il commit delle modifiche in tali file. Anche se questo articolo fa riferimento ai repository GitHub, è possibile lavorare in remoto con il provider Git preferito, ad esempio GitHub o Azure DevOps. In alternativa, è possibile lavorare in locale senza provider.

Git tiene traccia delle modifiche dei file nel repository mentre si lavora e separa i file nel repository in tre categorie. Queste modifiche sono equivalenti a quelle visualizzate quando si immette il comando git status nella riga di comando:

  • file non modificati: questi file non sono stati modificati dopo l'ultimo commit.
  • File modificati: questi file hanno modifiche dall'ultimo commit, ma non sono ancora state preparate per il commit successivo.
  • file di staging: questi file presentano modifiche che verranno aggiunte al commit successivo.

Mentre lavori, Visual Studio tiene traccia dei cambiamenti ai file nel tuo progetto nella sezione Cambiamenti della finestra Modifiche Git.

la finestra delle modifiche di Git in Visual Studio 2022.

Applica le modifiche e conferma un commit

Per preparare le modifiche quando si è pronti, selezionare il pulsante + (più) in ogni file da preparare oppure fare clic con il pulsante destro del mouse su un file e quindi scegliere Fase. È anche possibile preparare tutti i file modificati con un solo clic usando il pulsante 'prepara tutto + (più)' nella parte superiore della sezione Modifiche.

Quando si effettua lo staging di una modifica, Visual Studio crea una sezione Modifiche in fase. Solo le modifiche nella sezione Modifiche in corso vengono aggiunte al commit successivo, che è possibile eseguire selezionando Commit. Il comando equivalente per questa azione è git commit -m "Your commit message".

la finestra di dialogo del Commit Git in Visual Studio 2022.

Le modifiche possono anche essere annullate facendo clic sul pulsante - (meno). Il comando equivalente per questa azione è git reset <file_path> per rimuovere dall'area di staging un singolo file o git reset <directory_path> per rimuovere dall'area di staging tutti i file in una directory.

È anche possibile scegliere di non mettere in staging i file modificati saltando l'area di staging. In questo caso, Visual Studio consente di eseguire direttamente il commit delle modifiche senza dover eseguirne il staging. Immettere il messaggio di commit e quindi selezionare Commit All. Il comando equivalente per questa azione è git commit -a.

Visual Studio semplifica anche il commit e la sincronizzazione con un solo clic usando le scorciatoie commit di tutti e push e commit di tutti e sincronizzazione. Quando si fa doppio clic su qualsiasi file nella sezione Modifiche e nella sezione delle modifiche in fase, è possibile visualizzare un confronto riga per riga con la versione non modificata del file. Vedi Confronta i file in visualizzazione diff.

Confronto riga per riga delle versioni di file in Visual Studio 2022.

Novità di versione 17.6: è anche possibile fare riferimento a un problema o a una richiesta pull digitando # o selezionando il pulsante # nel lato inferiore destro della casella di testo del messaggio di commit. Per ulteriori informazioni, consultare il post del blog "Problemi di riferimento e richieste di pull".

Novità di versione 17.12: quando si rinomina un file, verrà visualizzata una barra di notifica nella parte superiore della finestra Modifiche Git che informa che un file è stato rinominato e richiede di preparare la modifica. Questa notifica viene visualizzata prima di preparare o confermare qualsiasi elemento. È possibile eseguire lo staging e il commit della modifica prima di apportare altre modifiche, per assicurarsi che Git rilevi la modifica come rinomina, non un'eliminazione e un'aggiunta di un nuovo file.

Novità di versione 17.13: con GitHub Copilot installato, è possibile avere GitHub Copilot rivedere le modifiche al codice prima di eseguirne il commit. Per usare questa funzionalità, assicurarsi che Strumenti>Opzioni>funzionalità di anteprima>Commenti sulle richieste pull sia abilitata e abilitare anche Strumenti>Opzioni>GitHub>Copilot>Integrazione del controllo del codice sorgente>Abilitare le funzionalità di anteprima Git.

Nella finestra Modifiche Git, fai clic sul pulsante Rivedi modifiche con Copilot, che ha un aspetto simile a un'icona di commento con una scintilla.

Dopo alcuni istanti, viene visualizzato un collegamento che mostra il numero di commenti di revisione del codice nella finestra modifiche Git su cui è possibile fare clic per visualizzare e esplorare i commenti. Se non vengono rilevati problemi, viene visualizzato il messaggio Copilot non ha commentato alcun file.

Screenshot che mostra la finestra Modifiche Git con il pulsante Rivedi modifiche.

Il feedback di revisione del codice viene visualizzato come commenti, che mostrano un breve riepilogo del potenziale problema ed è possibile decidere di apportare una modifica o ignorare la casella di commento usando il pulsante freccia verso il basso in alto a destra della casella di commento.

Screenshot che mostra il commento di revisione del codice GitHub.

Per rimuovere tutti i commenti, usare il X nella finestra Modifiche Git per chiudere il collegamento di revisione del codice Copilot.

Ripristinare, reimpostare o modificare un commit

Quando si fa doppio clic su un Commit, Visual Studio apre i relativi dettagli in una finestra degli strumenti separata. Da qui è possibile ripristinare il commit, reimpostare (annullare) il commit, modificare il messaggio di commit o creare un tag nel commit. Quando si fa clic su un file modificato nel commit, Visual Studio apre la diff affiancata visualizzazione del commit e del relativo elemento padre.

finestra di dialogo dei dettagli del commit in Visual Studio 2022.

Generare messaggi di commit con GitHub Copilot Chat

Con Visual Studio versione 17.9 e successive e le estensioni Di GitHub Copilot, è possibile usare l'intelligenza artificiale per generare messaggi di commit dettagliati che descrivono le modifiche.

Nota

Per abilitare i messaggi di commit generati dall'intelligenza artificiale, sono necessari GitHub Copilot e GitHub Copilot Chat. Se stai usando Visual Studio versione 17.10 o successiva, vedi Ottieni GitHub Copilot per Visual Studio 2022 versione 17.10 o successiva.

Se si usa Visual Studio nelle versioni 17.9 o precedenti, vedere ottieni GitHub Copilot per Visual Studio 2022 nelle versioni 17.8 a 17.9.

Screenshot che mostra il messaggio di commit generato dall'intelligenza artificiale.

Quando si è pronti per eseguire un commit, usare l'icona della penna scintillante (descrizione comando: Aggiungere un messaggio di commit generato dall'intelligenza artificiale) in basso a destra della casella di testo del messaggio di commit per richiederlo. Il testo generato dall'intelligenza artificiale viene generato e aggiunto a qualsiasi elemento già presente. Leggerlo attentamente per verificare se è accurato. È possibile accettare l'inserimento o rimuoverlo. Se si accetta l'inserimento, è possibile modificare il testo prima di inviarlo. Quando sei pronto, scegli il pulsante Commit Staged, oppure una delle altre opzioni di commit disponibili nell'elenco a discesa sotto la casella di modifica del messaggio di commit.

Con Visual Studio 2022 versione 17.12 e successive, è possibile personalizzare il formato di messaggio di commit a livello globale fornendo indicazioni aggiuntive nella richiesta di GitHub Copilot. Per aggiungere istruzioni di prompt personalizzate, aprire Tools>Options>GitHub Copilote in Commit message custom instructionsimmettere le aggiunte al testo del prompt. Le modifiche influiscono su ogni messaggio di commit. Con queste indicazioni tempestive, i team possono standardizzare i formati dei messaggi di commit.

Screenshot che mostra la pagina delle opzioni degli strumenti di GitHub Copilot con una richiesta personalizzata per i messaggi di commit.

GitHub Copilot comprende termini come "oggetto" (la prima linea del messaggio di commit), "corpo" (la sezione che descrive le modifiche in modo più dettagliato) e "footer" (la sezione finale). Alcuni esempi includono "Usa tutti i caratteri minuscoli", "Limita il soggetto a 50 caratteri", "Limita il corpo a 2 frasi", "Aggiungi un piè di pagina con tre segni hash" o "Segui lo standard dei Commit Convenzionali", che fa riferimento allo standard Commit Convenzionali.

Nota

Per informazioni su come GitHub Copilot protegge la privacy dei dati, vedere Informativa sulla privacy aziendale di GitHub Copilot.