Kurssisisältö
Githubin Perusteet
Githubin Perusteet
Tietovarastojen Synkronointi
Kuten edellisessä luvussa mainittiin, meidän täytyy synkronoida paikallinen haaramme etävaraston kanssa. Tämän tekemiseksi tulee suorittaa git pull
-komento:
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:
Käsittelemme rebase-toiminnon myöhemmin tällä kurssilla.
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:
Ristiriidan ratkaiseminen
Kuten näet, nykyinen paikallinen commit ja etä main
-haaran commit jakavat yhteisen edeltäjän, mutta haarautuvat, mikä johtaa yhdistämisristiriitaan, joka meidän täytyy ratkaista. Tämän tekemiseksi avaamme README.md
-tiedoston Vim-editorissa:
Voimme ratkaista tämän ristiriidan siirtymällä insert-tilaan painamalla i
, poistamalla ristiriitamerkinnät ja yhdistämällä muutokset seuraavalla tavalla:
Seuraavaksi paina Escape-näppäintä, kirjoita :wq
ja paina Enter-näppäintä tallentaaksesi muutokset ja poistuaksesi Vimistä. Nyt, yhdistämisen viimeistelemiseksi, README.md
-tiedosto täytyy lisätä väliaikaisalueelle ja sitten kommitoida käyttämällä vastaavia komentoja:
Kun suoritat git commit
-komennon, avautuu oletustekstieditori (todennäköisesti Vim). Voit joko jättää oletuskommentin ja poistua Vimistä samalla tavalla kuin äsken, tai muokata viestiä ja poistua sen jälkeen.
Lopuksi voimme turvallisesti suorittaa git push
-komennon ja varmistaa, että kolmitieyhdistäminen onnistui näyttämällä commit-puun:
Käydään läpi, mitä teimme näissä kahdessa luvussa:
Simuloimme yhteistyötä tekemällä muutoksia sekä paikallisesti että etänä tiedostoon
README.md
;Teimme ensin muutoksen suoraan etävarastoon, jonka jälkeen teimme toisen muutoksen paikallisesti;
Kun yritimme puskea paikalliset muutokset, kohtasimme ristiriidan, koska etävarastossa oli uusia päivityksiä;
Ratkaistaksemme tämän, haimme muutokset etävarastosta, mikä johti yhdistämisristiriitaan;
Ratkaisimme tämän jälkeen ristiriidan manuaalisesti tiedostossa
README.md
käyttäen Vim-editoria, kommitoimme ratkaistut muutokset ja lopulta puskimme lopulliset päivitykset etävarastoon.
Kiitos palautteestasi!