Denne oppgaven tar utgangspunkt i et eksempel-repo. Fork repoet før du begynner: https://github.com/sindrebn/eksempelrepo-1
Opprett en pull request fra branchen feature1
til master
. Du vil se på pull requesten at branchen har konflikter med master
. Disse må løses før du kan merge.
💡 Velg din egen fork av repoet som «base repository» (dvs. <ditt-brukernavn>/eksempelrepo-1
) slik at du får lov til å merge etter å ha løst konfliktene.
Løs konfliktene ved å merge master
inn i feature1
lokalt på egen maskin. Push endringene når du er ferdig. Til slutt merger du pull requesten på GitHub.
💡 Konflikter oppstår når en fil har endret seg både i din branch og branchen du merger inn. For å gjennomføre mergen, åpne filen(e) som har en konflikt, endre filen til å være slik du ønsker den skal være og marker konflikten som løst med git add <fil>
. Når du har gjort det for alle filene som har konflikt, gjennomfør selve mergen med git commit
.
3. Løse konflikter med rebase
Opprett en ny pull request, denne gangen fra feature2
til master
. Denne branchen har også konflikter som må løses før merging.
Løs konfliktene ved å rebase feature2
på master
. Dette gjør du på følgende vis:
> git checkout feature2
> git rebase master
Løs konfliktene etterhvert som de oppstår
> git push --force
Legg merke til at vi må gjøre en såkalt «force push» for å kunne pushe den rebasede branchen vår for å indikere at du er klar over at du skriver over endringer remote.
💡 I motsetning til ved en merge hvor du får alle konfliktene på én gang, vil du nå løse konfliktene commit for commit. Løs konflikter som i sted, men gjør git rebase --continue
for å spole deg fremover i historikken. Du kan når som helst gjøre git rebase --abort
hvis du gjør feil og vil begynne på nytt.
Merge pull requesten fra GitHub.
Installer hub
eller GitHub CLI, og bruk verktøyet for å opprette en pull request.