Tietovarastojen Synkronointi
Pyyhkäise näyttääksesi valikon
Kuten edellisessä luvussa mainittiin, meidän täytyy synkronoida paikallinen haara etävaraston kanssa. Tämän tekemiseksi tulee suorittaa git pull -komento:
git pull
Kun suoritimme git pull -komennon, Git haki päivitykset mutta huomasi, että paikallinen ja etähaara ovat eriytyneet, eli molemmissa haaroissa on muutoksia, jotka täytyy sovittaa yhteen. Git ei voinut jatkaa, koska sen täytyy tietää, miten nämä erot käsitellään, joten asetetaan merge-vaihtoehto ja suoritetaan git pull -komento uudelleen:
git config pull.rebase false
Käsittelemme rebase-toiminnon myöhemmin tällä kurssilla.
git pull
Git yritti automaattisesti yhdistää paikalliset ja etämuutokset tiedostoon README.md, mutta kohtasi yhdistämisristiriidan. Tarkastellaan commit-puuta, joka osoittaa, missä haarautuminen ja ristiriidat ovat tapahtuneet:
git log --graph --oneline --all
Ristiriidan ratkaiseminen
Kuten näet, nykyinen paikallinen commit ja etä main-haaran commit jakavat yhteisen esi-isän, mutta haarautuvat, mikä johtaa yhdistämisristiriitaan, joka täytyy ratkaista. Tämän tekemiseksi avaamme README.md-tiedoston Vim-editorissa:
vim README.md
Tämän ristiriidan ratkaisemiseksi siirrytään insert-tilaan painamalla i, poistetaan ristiriitamerkinnät ja yhdistetään muutokset seuraavalla tavalla:
Seuraavaksi paina Escape-näppäintä, kirjoita :wq ja paina Enter-näppäintä tallentaaksesi muutokset ja poistuaksesi Vim-editorista. Nyt yhdistämisen viimeistelemiseksi README.md-tiedosto täytyy lisätä väliaikaisalueelle ja sitten kommitoida seuraavilla komennoilla:
git add README.md
git commit
Kun suoritat git commit -komennon, oletustekstieditori avautuu (yleensä Vim). Voit joko jättää oletuskommentin ja poistua Vim-editorista samalla tavalla kuin aiemmin, tai muokata viestiä ja poistua sen jälkeen.
Lopuksi voimme turvallisesti suorittaa git push -komennon ja varmistaa, että kolmisuuntainen yhdistäminen onnistui näyttämällä commit-puun:
git log --graph --oneline --all
Käydään läpi, mitä teimme näissä kahdessa luvussa:
-
Simuloimme yhteistyötä tekemällä muutoksia sekä paikallisesti että etänä
README.md-tiedostoon; -
Teimme ensin muutoksen suoraan etärepositorioon ja sitten toisen muutoksen paikallisesti;
-
Kun yritimme puskea paikalliset muutokset, kohtasimme ristiriidan, koska etärepositoriossa oli uusia päivityksiä;
-
Ratkaistaksemme tämän haimme muutokset etärepositoriosta, mikä johti yhdistämisristiriitaan;
-
Ratkaisimme sitten ristiriidan manuaalisesti
README.md-tiedostossa Vim-editorilla, committoimme ratkaistut muutokset ja lopuksi puskimme lopulliset päivitykset etärepositorioon.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme