Risolvere i conflitti di unione in Visual Studio
Quando si unisce un ramo a un altro, le modifiche apportate ai file dai commit in un ramo possono essere in conflitto con le modifiche nell'altra. Git tenta di risolvere queste modifiche usando la cronologia nel repository per determinare l'aspetto dei file uniti. Quando non è chiaro come unire le modifiche, Git interrompe l'unione e indica quali file sono in conflitto.
Impedire conflitti di unione
Git è utile per unire automaticamente le modifiche ai file nella maggior parte dei casi, purché il contenuto del file non cambi notevolmente tra i commit. Se il tuo ramo è molto indietro rispetto al tuo ramo principale, considera di ribasare i rami prima di aprire una pull request. I rami ribasati verranno uniti nel ramo principale senza conflitti.
Risolvere i conflitti di unione
Se si collabora con altri utenti nello stesso ramo, è possibile che vengano visualizzati conflitti di merge quando si fa push delle modifiche.
Visual Studio rileva se il ramo locale su cui si sta lavorando si trova dietro il ramo di rilevamento remoto e offre opzioni tra cui scegliere.
Nota
Se il repository remoto supporta Force Push, è possibile abilitarlo usando Git>Settings.
In questo esempio selezionare pull e quindi eseguire il push per includere le modifiche introdotte nel repository remoto. Se si verificano conflitti di unione quando si eseguono il pull delle modifiche o si tenta di unire due rami, Visual Studio informa l'utente nella finestra Git Changes, nella finestra Git Repository e in tutti i file con conflitti.
La finestra modifiche Git mostra un elenco di file con conflitti in Modifiche non salvate. Per iniziare a risolvere i conflitti, fare doppio clic su un file. In alternativa, se nell'editor è aperto un file con conflitti, è possibile selezionare Apri editor di merge.
Nell'editor di merge iniziare a risolvere il conflitto usando uno dei metodi seguenti (come illustrato nello screenshot numerato):
Esamina i tuoi conflitti riga per riga e scegli se mantenere il lato destro o quello sinistro selezionando le caselle di controllo.
-o-
Selezionare il pulsante Prendi Modifiche in Ingresso (o premere F10) per accettare tutte le modifiche in ingresso, oppure il pulsante Prendi Versione Corrente (o premere F11) per mantenere la versione corrente di tutte le modifiche in conflitto. È possibile eseguire la stessa operazione selezionando una delle caselle di controllo nella parte superiore di una cornice affiancata.
-o-
Modifica manualmente il codice nella finestra Risultato .
Al termine della risoluzione dei conflitti di merge, devi selezionare Accetta merge. Ripetere questo processo per tutti i file in conflitto.
Usare la finestra modifiche Git per creare un commit di merge e risolvere il conflitto.
Nota
Se si desidera mantenere tutte le modifiche apportate a un file, è possibile fare clic con il pulsante destro del mouse nella sezione Modifiche non unite e selezionare Mantieni la versione corrente (locale) senza dover aprire l'Editor di Unione.
Suggerimento
Per altre informazioni sulle opzioni di accessibilità disponibili, vedere la sezione tasti di scelta rapida Git della pagina Suggerimenti per l'accessibilità per Visual Studio.
Configurare lo strumento diff
Se si imposta il file .gitconfig
per usare uno strumento diff di terze parti, ad esempio BeyondCompare o KDiff3, Visual Studio lo rispetta. Ogni volta che Visual Studio visualizza normalmente un diff, viene aperta una finestra separata nello strumento preferito. Per un esempio, vedere questa domanda stack overflow.