Dela via


Lösa sammanslagningskonflikter i Visual Studio

När du sammanfogar en gren med en annan kan filändringar från commits i en gren vara i konflikt med ändringarna i den andra. Git försöker lösa dessa ändringar med hjälp av historiken på lagringsplatsen för att avgöra hur de sammanfogade filerna ska se ut. När det inte är klart hur du sammanfogar ändringar stoppar Git sammanfogningen och anger vilka filer som står i konflikt.

Förhindra sammanslagningskonflikter

Git är bra på att automatiskt sammanfoga filändringar under de flesta omständigheter, så länge filinnehållet inte ändras dramatiskt mellan incheckningar. Om din gren ligger långt efter huvudgrenen, överväg att ombasera dina grenar innan du öppnar en pull request. Omorganiserade grenar kommer att slås ihop med din huvudgren utan konflikter.

Lösa sammanslagningskonflikter

  • Om du samarbetar med andra i samma gren kan det uppstå sammanslagningskonflikter när du laddar upp dina ändringar.

    Skärmbild av sammanslagningskonflikt efter en push.

  • Visual Studio identifierar om den lokala grenen som du har arbetat med ligger bakom dess fjärrspårningsgren och ger dig sedan alternativ att välja mellan.

    Skärmbild av tillgängliga alternativ när den lokala grenen ligger bakom fjärrgrenen.

    Notera

    Om fjärrlagringsplatsen stöder Force Push-kan du aktivera den med hjälp av Git>-inställningar.

    I det här exemplet väljer du Pull och sedan Push- för att inkludera ändringar som introducerats på fjärrlagringsplatsen. Om det finns några sammanslagningskonflikter när du hämtar ändringar eller försöker sammanfoga två grenar meddelar Visual Studio dig i fönstret Git-ändringar i fönstret Git-lagringsplats och på filer som har konflikter.

    Skärmbild av ett meddelande om sammanslagningskonflikt.

  • Fönstret Git-ändringar visar en lista över filer med konflikter under Omarbetade ändringar. Om du vill börja lösa konflikter dubbelklickar du på en fil. Eller om du har en fil med konflikter öppnad i redigeraren kan du välja Öppna kopplingsredigeraren.

    Skärmbild av status för sammanslagningskonflikt i fönstret Git-ändringar.

  • I Sammanslagningsredigeraren börjar du lösa konflikten med någon av följande metoder (som visas i den numrerade skärmbilden):

    1. Gå över konflikterna rad för rad och välj mellan att behålla höger eller vänster sida genom att markera kryssrutorna.

      -eller-

    2. Välj knappen Ta inkommande (eller tryck på F10) för att acceptera alla inkommande ändringar, eller Ta nuvarande -knappen (eller tryck på F11) för att behålla din nuvarande version av alla ändringar som är i konflikt. Du kan göra samma sak genom att markera en av kryssrutorna överst i någon av ramarna sida vid sida.

      -eller-

    3. Redigera koden manuellt i fönstret Resultat.

    Skärmbild som visar hur du löser en sammanslagningskonflikt i Visual Studio 2022.

    Tips

    Om du inte gillar standardlayouten i Sammanslagningsredigeraren kan du ändra den med hjälp av den nedrullningsbara växelmenyn.

    Skärmbild av alternativen för layout i Sammanfoga redigerare.

    Följande skärmbild visar till exempel hur den lodräta vyn ser ut:

    Skärmbild av den lodräta vyn i användargränssnittet för Sammanslagningsredigeraren.

  • När du är klar med att lösa sammanslagningskonflikterna väljer du Acceptera sammanslagning. Upprepa den här processen för alla filer som är i konflikt.

    Skärmbild av åtgärden Acceptera sammanslagning i Visual Studio 2022.

  • Använd fönstret Git Changes för att skapa en sammanslagningskommitté och lösa konflikten.

    Skärmbild av hur du skapar en merge-committ med hjälp av fönstret Git Changes.

    Notera

    Om du vill behålla alla dina ändringar i en fil kan du högerklicka på den i avsnittet Ej indelade ändringar och välja Behåll aktuell (lokal) utan att behöva öppna Sammanslagningsredigeraren.

    Skärmbild av menyalternativet Behåll aktuell.

Tips

Mer information om tillgängliga hjälpmedelsalternativ finns i avsnittet Git-kortkommandon på sidan Hjälpmedelstips och tips för Visual Studio.

Konfigurera ditt diff-verktyg

Om du anger .gitconfig fil att använda ett diffverktyg från tredje part, till exempel BeyondCompare eller KDiff3, respekterar Visual Studio det. När Visual Studio normalt skulle visa ett diff öppnas ett separat fönster i det verktyg som du väljer. Ett exempel finns i den här Stack Overflow- fråga.