Manuel løsning af merge-konflikter
Lær manuelt at identificere og løse merge-konflikter, der opstår, når divergerende branches integreres.
Manuel løsning af merge-konflikter er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Forståelse af flettekonflikter
Velkommen til flettekonflikternes verden! Du behøver ikke være bekymret; de er en normal del af samarbejde med Git. En flettekonflikt opstår, når Git ikke automatisk kan finde ud af, hvordan ændringer fra to forskellige grene skal kombineres.
Det sker typisk, når to grene ændrer de samme linjer i den samme fil på forskellige måder, eller når den ene gren sletter en fil, som den anden gren har ændret.
Hvorfor konflikter opstår
Git er utroligt god til automatisk at flette de fleste ændringer. Men den har brug for menneskelig hjælp, når der er tvetydighed. Her er nogle almindelige scenarier:
- Samme linje, forskellige ændringer: To personer redigerer præcis den samme kodelinje forskelligt.
- Den ene sletter, den anden ændrer: Den ene gren sletter en fil, mens den anden gren ændrer den.
- Omdøbning kontra ændring: En fil omdøbes i den ene gren og ændres i den anden.
Registrering af konflikter med Git
Når der opstår en flettekonflikt, færdiggør Git ikke fletningen automatisk. I stedet sætter Git processen på pause og fortæller dig, hvilke filer der indeholder konflikter. Du får vist en meddelelse som denne:
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.Brug af `git status` til konflikter
Efter en mislykket automatisk fletning er dit lager i tilstanden 'fletter'. Du kan bruge git status til at se, hvilke filer der er i konflikt. Disse filer vises som 'ikke-flettede stier'.
git statusFortolkning af konfliktmarkører
Git indsætter særlige markører direkte i de filer, der er i konflikt, for at vise dig, hvor problemet er. Markørerne hjælper dig med at identificere de forskellige versioner af koden:
<<<<<<< HEAD: Markerer begyndelsen på ændringerne i din aktuelle gren.=======: Adskiller ændringerne fra de to grene.>>>>>>> branch-name: Markerer slutningen på ændringerne fra den indkommende gren.
Inde i en fil med konflikt
Lad os se på et eksempel. Forestil dig, at du har filen hello.txt. Din main-gren ændrede den til 'Hello from main', og en feature-gren ændrede den samme linje til 'Greetings from feature'. Når feature flettes ind i main, ser filen sådan ud:
<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> featureManuel løsning af konflikten
Din opgave er at åbne den fil, der er i konflikt (f.eks. hello.txt), i din teksteditor. Derefter redigerer du filen manuelt for at fjerne konfliktmarkørerne og vælge det ønskede indhold. Du kan kombinere dele, vælge én version eller skrive noget helt nyt.
I eksemplet med hello.txt kunne vi redigere filen sådan, hvis vi ønsker begge meddelelser:
Hello from main and Greetings from feature!Klargøring af løste ændringer
Når du manuelt har redigeret filen og fjernet alle konfliktmarkører, skal du fortælle Git, at du har løst konflikten. Det gør du ved at klargøre filen med git add.
Gentag dette for hver fil, der vises som 'ikke-flettede stier' med git status.
git add hello.txtFærdiggørelse af flette-committen
Når alle filer med konflikter er klargjort, er fletningen klar til at blive committet. Git angiver normalt en standardmeddelelse til flette-committen, som du kan acceptere eller ændre. Denne sidste commit fuldfører fletteprocessen.
git commit -m "Merged feature branch, resolved conflict in hello.txt"Tjek af konfliktløsning
Du har løst en flettekonflikt. Lad os nu teste, om du forstår det næste vigtige trin efter manuel redigering af en fil med konflikt.
Opsamling: Manuel løsning af konflikter
Du har lært at løse flettekonflikter manuelt! Det er en grundlæggende færdighed for enhver udvikler.
- Konflikter opstår, når Git ikke kan flette ændringer automatisk.
git statusviser filer, der ikke er flettet.- Konfliktmarkører (
<<<<<<<,=======,>>>>>>>) viser kode, der afviger. - Redigér filerne manuelt, fjern markørerne, og vælg det endelige indhold.
- Placér de løste filer i mellemstadiet med
git add. - Afslut fletningen med
git commit.
Øvelse gør mester! Konflikter kan virke skræmmende i starten, men med disse trin lærer du at håndtere dem sikkert.
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Manuel løsning af merge-konflikter” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Manuel løsning af merge-konflikter”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Manuel løsning af merge-konflikter”?
Lær manuelt at identificere og løse merge-konflikter, der opstår, når divergerende branches integreres. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Manuel løsning af merge-konflikter”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Manuel løsning af merge-konflikter
- Interaktiv rebasing af historikken
- Cherry-picking af commits
- Genbrug konfliktløsninger med Git Rerere