Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Yhdistämisristiriitojen Ratkaiseminen | Työskentely Haarojen Kanssa Gitissä
Gitin Perusteet

Yhdistämisristiriitojen Ratkaiseminen

Pyyhkäise näyttääksesi valikon

Konfliktien korjaaminen

Edellisessä luvussa ilmeni yhdistämiskonflikti, joten nyt on aika korjata se. Avaa ensin branch_learning.txt -tiedosto Vim-editorissa seuraavalla komennolla:

vim branch_learning.txt
Vimin avaaminen

Jos Vim ei ole asennettuna, voit käyttää muuta tekstieditoria, kuten nano tai atom, korvaamalla vim editorisi nimellä yllä olevassa komennossa.
On kuitenkin suositeltavaa käyttää Vimiä, jotta ohjeiden seuraaminen olisi helpompaa.

Tässä tiedosto avattuna Vim-editorissa:

Tiedosto, jossa on ristiriitoja avattuna Vimissä

Nyt näet ristiriitamerkinnät, jotka osoittavat ristiriitaiset kohdat.
Nämä merkinnät käyttävät nuolia ja erikoissymboleita korostaakseen haarojen välisiä eroja:

  • <<<<<<< HEAD: merkitsee nykyisen haaran (master) muutosten alun;
  • =======: erottaa nykyisen haaran (HEAD) muutokset yhdistettävän haaran muutoksista;
  • >>>>>>> feature/new-feature: merkitsee lopun yhdistettävän haaran muutoksista.

Ristiriidan ratkaisemiseksi valitse jokin seuraavista vaihtoehdoista:

  • Säilytä nykyisen haaran (master) muutokset;
  • Säilytä yhdistetyn haaran (feature/new-feature) muutokset;
  • Muokkaa manuaalisesti sisältöä.

Muokkaa tiedostoa manuaalisesti yhdistämällä molempien haarojen muutokset seuraavien vaiheiden avulla:

1. Siirry muokkaustilaan

Siirry ensin insert-tilaan Vimissä painamalla i. Tämä mahdollistaa tekstin muokkaamisen.

2. Muokkaa ristiriitaista osiota

Seuraavaksi yhdistä molempien haarojen rivit peräkkäin. Tiedoston lopullisen sisällön tulisi näyttää tältä:

New branch
New line from the master branch
New line from the feature branch
Ristiriidan ratkaiseminen

3. Poistu muokkaustilasta, tallenna ja sulje

Paina Escape-näppäintä poistuaksesi syöttötilasta. Kirjoita sitten :wq ja paina Enter tallentaaksesi muutokset ja poistuaksesi Vim-editorista:

Poistuminen Vim-editorista

Tiedoston kommitointi

Koska konfliktit on ratkaistu, lisää branch_learning.txt -tiedosto staging-alueelle ja tarkista tila:

git add branch_learning.txt
git status
Ratkaistun tiedoston lisääminen

Tiedostoa muokattiin ja se lisättiin onnistuneesti väliaikaisalueelle. Seuraavaksi commit-toiminto:

git commit
Tiedoston commitoiminen

Jälleen kerran oletustekstieditori avautuu (Vim tässä tapauksessa) oletuskommentilla liittyen yhdistämiseen:

Oletus yhdistämiskommentti

Siirry insert-tilaan Vimissä painamalla i ja muokkaa viestiä lisäämällä rivi Kept lines from both branches kuvaamaan, miten ristiriidat ratkaistiin.

Tässä on koko yhdistämiskommentti:

Merge branch 'feature/new-feature'

Kept lines from both branches

Poistuaksesi syöttötilasta, tallentaaksesi muutokset ja sulkeaksesi Vim-editorin, paina Escape-näppäintä, kirjoita :wq ja paina Enter.

Muutetun viestin tallentaminen ja Vim-editorista poistuminen

Kommitointi onnistui ja yhdistämiskonflikti on nyt ratkaistu.

Kolmisuuntainen yhdistäminen

Tarkastellaan nyt commit-historiaamme graafina (--graph-lippu) siten, että jokainen commit näkyy yhdellä rivillä (--oneline-lippu):

git log --graph --oneline
Commit-historian graafi

Tässä näet viimeisimmän yhdistämiskommitin sekä kolmisuuntaisen yhdistämisen tunnusomaisen rakenteen.

question mark

Mikä on suositeltu tapa ratkaista yhdistämiskonflikti Gitissä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 6
some-alt