Visual Studio Code come risolvere i conflitti di unione con git?


106

Ho provato a unire il mio ramo con un altro ramo e si è verificato un conflitto di unione. In Visual Studio Code (versione 1.2.1) ho risolto tutti i problemi, tuttavia quando provo a eseguire il commit continua a darmi questo messaggio:

È necessario innanzitutto risolvere le modifiche non unite prima di confermare le modifiche.

Ho provato a cercarlo su Google ma non riesco a scoprire perché non mi consente di eseguire il commit delle mie modifiche, tutti i conflitti sono scomparsi.


1
Sebbene ciò che hai detto sia corretto, non risolve il problema nella domanda. Ho dichiarato esplicitamente di aver già risolto tutti i conflitti di unione nella domanda.
annedroiid

Risposte:


109

Con VSCode puoi trovare facilmente i conflitti di unione con la seguente interfaccia utente. inserisci qui la descrizione dell'immagine

(se non hai la barra in alto, imposta "editor.codeLens": truein Preferenze utente)

Indica la modifica corrente che hai e la modifica in arrivo dal server. Ciò semplifica la risoluzione dei conflitti: basta premere i pulsanti sopra <<<< HEAD.

Se hai più modifiche e desideri applicarle tutte in una volta, apri la tavolozza dei comandi (Visualizza -> Tavolozza dei comandi) e inizia a digitare unisci: appariranno più opzioni tra cui Merge Conflict: Accept Incoming, ecc.


1
hai ricevuto l'ultimo aggiornamento! mostrerò in ogni riga
Sajeetharan


1
Come ottenere queste unioni, risolvere le opzioni di conflitto nel codice di Visual Studio.
user630209

1
come abilitarlo, qualsiasi scorciatoia?. Non riesco a vedere quell'opzione nel mio file di conflitto.
user630209

1
@RyeGuy Queste opzioni sono mostrate tramite CodeLens, quindi devi abilitare CodeLens (vedi code.visualstudio.com/Docs/editor/… ).
Geri Borbás

71

Dopo tentativi ed errori, ho scoperto che devi mettere in scena il file che presentava il conflitto di unione, quindi puoi eseguire il commit dell'unione.


1
Si corretto. Qualsiasi commit, sia che si tratti di un conflitto di unione o del tuo commit locale che stai cercando di spingere, deve essere messo in scena prima che tu possa spingere quel commit.
surendrapanday

1
Per coloro che sono confusi se git add .non mettono in scena tutti i file, controlla se sei nella directory principale del progetto. Mi ci è voluto un po 'di tempo per capirlo. Quindi git add .mettere in scena tutti i file, e poi mi ha permesso digit merge --continue
bensadiku

E dopo aver risolto il conflitto di unione, devi prima SALVARE il file in conflitto prima di mettere in scena le modifiche unite.
nclark

22

Per coloro che hanno difficoltà a trovare i "pulsanti di unione".

La piccola icona a forma di lampadina con le opzioni di unione viene visualizzata solo se fai clic con precisione sull '"indicatore di conflitto di unione"

<<<<<<<

Passaggi (in VS Code 1.29.x):


19
  1. Fare clic sul pulsante "Controllo del codice sorgente" a sinistra.
  2. Vedi UNISCI MODIFICHE nella barra laterale.
  3. Quei file hanno conflitti di unione.

VS Code> Controllo del codice sorgente> Unisci modifiche (esempio)


1
Avevo le opzioni "Accetta modifica corrente | Accetta modifica in arrivo ..." ma ora queste opzioni sono scomparse dalla riga, hai idea di come rivelare di nuovo queste opzioni?
jet_choong

15

Il messaggio di errore che ricevi è il risultato del fatto che Git continua a pensare che non hai risolto i conflitti di unione. In effetti, lo hai già fatto, ma devi dire a Git che l'hai fatto aggiungendo i file risolti all'indice.

Questo ha l'effetto collaterale che potresti effettivamente aggiungere i file senza risolvere i conflitti e Git penserebbe comunque che tu abbia. Quindi dovresti essere diligente nell'assicurarti di aver davvero risolto i conflitti. Potresti persino eseguire la build e testare il codice prima di eseguire il commit.


3

Per VS Code 1.38 o se non è stato possibile trovare alcun pulsante "lampadina". Presta molta attenzione al testo in grigio sopra i conflitti; c'è un elenco di azioni che puoi intraprendere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.