kzen.dev
  • Frågor
  • Taggar
  • Användare
Meddelanden
Belöningar
Registrering
När du har registrerat dig kommer du att få information om svar och kommentarer på dina frågor.
Logga in
Om du redan har ett konto loggar du in för att kontrollera nya meddelanden.
Det kommer att finnas belöningar för frågor, svar och kommentarer.
Mer
Källa
Redigera
 Spoike
Spoike
Question

Hur man löser sammanfogningskonflikter i Git

Hur löser jag sammanfogningskonflikter i Git?

4577 2008-10-02T11:31:05+00:00 3
 TylerH
TylerH
Redigerad fråga 2019ör maj 2019 в 9:21
Programmering
git
git-merge
merge-conflict-resolution
git-merge-conflict
Popular videos
A Step by Step Guide for How to Resolve Git Merge Conflicts
A Step by Step Guide for How to Resolve Git Merge Conflicts
för 5 år sedan
1.9: Resolving Merge Conflicts - Git and GitHub for Poets
1.9: Resolving Merge Conflicts - Git and GitHub for Poets
för 5 år sedan
How to resolve merge conflicts in Git
How to resolve merge conflicts in Git
för 3 år sedan
Hur man löser en 2x2
Hur man löser en 2x2
för 7 år sedan
Hur man löser 2x2 väldigt snabbt! (10 sek)
Hur man löser 2x2 väldigt snabbt! (10 sek)
för 7 år sedan
Hur man löser en rubix cub
Hur man löser en rubix cub
för 5 år sedan
Hur man löser en Rubiks Kub 2x2
Hur man löser en Rubiks Kub 2x2
för 4 år sedan
Hur man löser 4x4 - Guide för nybörjare
Hur man löser 4x4 - Guide för nybörjare
för 4 år sedan
Hur Man Löser En Rubik's Kub | Steg 5 - Den Gula Sida
Hur Man Löser En Rubik's Kub | Steg 5 - Den Gula Sida
för 3 år sedan
Hur man löser en 2x2 - Enklaste metoden
Hur man löser en 2x2 - Enklaste metoden
för 5 år sedan
Hur man löser Rubik's kub - Lättaste metoden (utan svåra algoritmer)
Hur man löser Rubik's kub - Lättaste metoden (utan svåra algoritmer)
för 1 år sedan
Hur man löser en Rubiks kub | Lätt
Hur man löser en Rubiks kub | Lätt
för 3 år sedan
Hur man löser Rubiks kub - För nybörjare
Hur man löser Rubiks kub - För nybörjare
för 5 år sedan
Hur man löser rubiks kub
Hur man löser rubiks kub
för 7 år sedan
Hur man löser en Rubiks kub
Hur man löser en Rubiks kub
för 7 år sedan
HUR MAN LÖSER EN RUBIKS KUB! 100% ENKLASTE METODEN, HÖG KVALITÉ
HUR MAN LÖSER EN RUBIKS KUB! 100% ENKLASTE METODEN, HÖG KVALITÉ
för 4 år sedan
Så här löser du en Rubiks 4x4x4 (del 1)
Så här löser du en Rubiks 4x4x4 (del 1)
för 12 år sedan
Så här löser du en 5x5x5 - del 2
Så här löser du en 5x5x5 - del 2
för 11 år sedan
« Föregående
Nästa »
Den här frågan har 1 svar på engelska, för att läsa dem logga in på ditt konto.
Solution / Answer
Peter Burns
Peter Burns
2008ör oktober 2008 в 5:50
2008-10-02T17:50:25+00:00
Mer
Källa
Redigera
#8531973

Försök: git mergetool

Det öppnar ett grafiskt gränssnitt som visar dig hur du går igenom varje konflikt, och du kan välja hur du vill slå ihop den. Ibland krävs det lite handredigering efteråt, men oftast räcker det. Det är mycket bättre än att göra allt för hand säkert.

Enligt @JoshGlover kommentar:

Kommandot öppnar inte nödvändigtvis ett GUI om du inte installerar ett. Att köra git mergetool för mig resulterade i att vimdiff användes. Du kan installera ett av följande verktyg för att använda det istället: meld, opendiff, kdiff3, tkdiff, xxdiff, tortoisemerge, gvimdiff, diffuse, ecmerge, p4merge, araxis, vimdiff, emerge.

Nedan följer en exempelprocedur för att använda vimdiff för att lösa sammanslagningskonflikter. Baserat på denna länk

Steg 1: Kör följande kommandon i din terminal

git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false

Detta kommer att ställa in vimdiff som standardverktyg för sammanslagning.

Steg 2: Kör följande kommando i terminalen

git mergetool

Steg 3: Du kommer att se en vimdiff-display i följande format

  ╔═══════╦══════╦════════╗
  ║       ║      ║        ║
  ║ LOCAL ║ BASE ║ REMOTE ║
  ║       ║      ║        ║
  ╠═══════╩══════╩════════╣
  ║                       ║
  ║        MERGED         ║
  ║                       ║
  ╚═══════════════════════╝

Dessa 4 vyer är

LOCAL - detta är filen från den aktuella grenen

BASE - gemensam förfader, hur filen såg ut före båda ändringarna

REMOTE - fil som du lägger samman i din gren.

MERGED - resultat av sammanslagningen, detta är vad som sparas i repo:n.

Du kan navigera mellan dessa vyer med ctrl+w. Du kan nå MERGED-vyn direkt genom att använda ctrl+w följt av j.

Mer information om vimdiff navigation här och här.

Steg 4. Du kan redigera MERGED-vyn på följande sätt

Om du vill hämta ändringar från REMOTE

:diffg RE  

Om du vill få ändringar från BASE

:diffg BA  

Om du vill få ändringar från LOCAL

:diffg LO 

Steg 5. Spara, avsluta, bekräfta och städa upp

:wqa spara och avsluta från vi

git commit -m "message"

git clean Ta bort extra filer (t.ex. *.orig) som skapats av diff-verktyget.

 Fozoro
Fozoro
Redigerat svar 2019ör juni 2019 в 3:50
2763
0
Artificial intelligence to parse product page
productapi.dev
 davetron5000
davetron5000
2008ör oktober 2008 в 12:41
2008-10-02T12:41:36+00:00
Mer
Källa
Redigera
#8531971
  1. Identifiera vilka filer som är i konflikt (Git borde berätta detta).

  2. Öppna varje fil och granska diffs; Git avgränsar dem. Förhoppningsvis är det uppenbart vilken version av varje block som ska behållas. Du kan behöva diskutera det med andra utvecklare som har lagt in koden.

  3. När du'har löst konflikten i en fil git add the_file.

  4. När du har löst alla konflikter gör du git rebase --continue eller vilket kommando som helst. Git sa att du skulle göra när du avslutade.

337
0
Artificial intelligence to parse product page
productapi.dev
 Paul
Paul
2008ör oktober 2008 в 4:11
2008-10-02T16:11:18+00:00
Mer
Källa
Redigera
#8531972

Om du ofta gör små commits börjar du med att titta på kommentarerna till commits med git log --merge. Sedan visar git diff dig konflikterna.

För konflikter som omfattar mer än några få rader är det lättare att se vad som händer i ett externt GUI-verktyg. Jag gillar opendiff -- Git stöder också vimdiff, gvimdiff, kdiff3, tkdiff, meld, xxdiff, emerge out of the box och du kan installera andra: git config merge.tool "your.tool" kommer att ställa in ditt valda verktyg och sedan kommer git mergetool efter en misslyckad sammanslagning att visa dig skillnaderna i sammanhanget.

Varje gång du redigerar en fil för att lösa en konflikt kommer git add filnamn att uppdatera indexet och din diff kommer inte längre att visa den. När alla konflikter är hanterade och deras filer har git add-redigerats, kommer git commit att slutföra din sammanslagning.

Peter Mortensen
Peter Mortensen
Redigerat svar 2014ör juli 2014 в 5:43
77
0
Lägg till en fråga
Kategorier
Alla
Teknik
Kultur / fritid
Livet / Konst
Vetenskap
Professionell
Företag
Användare
Alla
Ny
Populära
1
Анна Литвиненко
Registrerad för 1 dag sedan
2
Inessa bu
Registrerad för 1 månad sedan
3
Denis Babushkin
Registrerad för 1 månad sedan
4
asakuno asakuno
Registrerad för 1 månad sedan
5
aldo salerno
Registrerad för 1 månad sedan
Artificial intelligence to parse product page
productapi.dev
BG
CS
DA
DE
EL
ES
FR
ID
IT
JA
LT
LV
NL
NO
PL
PT
RO
SK
SL
SV
TR
ZH
© kzen.dev 2023
Källa
stackoverflow.com
under licens cc by-sa 3.0 med angivande av