Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Rebase-operaation Suorittaminen | Edistyneemmät Työnkulut
Githubin Perusteet
course content

Kurssisisältö

Githubin Perusteet

Githubin Perusteet

1. Johdanto GitHubiin
2. Perustoiminnot Etävarastojen Kanssa
3. Edistyneemmät Työnkulut

book
Rebase-operaation Suorittaminen

Muutosten uudelleensijoittaminen main-haaraan

Ennen kuin voimme uudelleensijoittaa muutoksemme, meidän täytyy ensin siirtyä main-haaraan ja noutaa viimeisimmät muutokset:

Tarkastellaan nyt commit-puuta:

Tällä hetkellä sekä main- että feature/payment-haaroissa on commiteja viimeisimmän yhteisen esi-isän jälkeen. Tämä tarkoittaa, että fast-forward-yhdistäminen ei ole mahdollista.

Jos yhdistäisimme nämä haarat, tapahtuisi kolmitieyhdistäminen. Haluamme kuitenkin säilyttää historian lineaarisena, joten suoritetaan feature/payment-haaran uudelleensijoittaminen main-haaraan. Tämä onnistuu siirtymällä feature/payment-haaraan ja suorittamalla git rebase -komento:

Fast-forward-yhdistäminen

Koska uudelleensijoitus (rebase) onnistui, tarkastellaanpa jälleen kommittipuutamme:

Kuten odotettua, komittihistoria on nyt lineaarinen ja uusin komitti on feature/payment-haarassa. Nyt voimme suorittaa yksinkertaisen fast-forward-yhdistämisen main-haaraan:

Varmistetaan, että molemmat haarat osoittavat samaan komittiin tarkastelemalla uusinta komittia:

Ominaisuushaaran poistaminen

main-haara sisältää nyt uusimman commitin, jossa maksujärjestelmä on toteutettu, joten voimme turvallisesti poistaa sekä paikallisen että etäisen feature/payment-haaran. Seuraava komento poistaa etähaaran:

Nyt voimme poistaa paikallisen haaran:

Lopuksi kaikki tekemämme muutokset voidaan puskea takaisin etävarastoon:

Varmistaaksesi, että feature-haara on poistettu sekä paikallisesti että etänä, voit suorittaa seuraavan komennon, joka listaa kaikki (-a tarkoittaa kaikkia) paikalliset ja etähaarat:

Kuten näet, feature/payment-haara on onnistuneesti poistettu, ja nyt on jäljellä vain kaksi haaraa: main ja john/test sekä niiden etävastineet.

Yleisesti ottaen rebase toimii hyvin paikallisille muutoksille, joita ei ole vielä jaettu, mutta se voi aiheuttaa merkittäviä ongelmia muutoksille, jotka on jo julkaistu etävarastoon ja mahdollisesti ladattu muiden yhteistyökumppaneiden toimesta. Sellaisten commitien uudelleenkäsittely, joita muut käyttävät, voi aiheuttaa sekaannusta ja ristiriitoja, koska commit-historiaa kirjoitetaan uudelleen.

Yleisenä sääntönä vältä rebasaamasta muutoksia, jotka on työnnetty etävarastoihin, jotta nämä ongelmat voidaan välttää.

question mark

Miksi feature/payment suorittaa fast-forward-yhdistämisen sen jälkeen, kun main on rebasaattu git merge feature/payment-haaraan?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

course content

Kurssisisältö

Githubin Perusteet

Githubin Perusteet

1. Johdanto GitHubiin
2. Perustoiminnot Etävarastojen Kanssa
3. Edistyneemmät Työnkulut

book
Rebase-operaation Suorittaminen

Muutosten uudelleensijoittaminen main-haaraan

Ennen kuin voimme uudelleensijoittaa muutoksemme, meidän täytyy ensin siirtyä main-haaraan ja noutaa viimeisimmät muutokset:

Tarkastellaan nyt commit-puuta:

Tällä hetkellä sekä main- että feature/payment-haaroissa on commiteja viimeisimmän yhteisen esi-isän jälkeen. Tämä tarkoittaa, että fast-forward-yhdistäminen ei ole mahdollista.

Jos yhdistäisimme nämä haarat, tapahtuisi kolmitieyhdistäminen. Haluamme kuitenkin säilyttää historian lineaarisena, joten suoritetaan feature/payment-haaran uudelleensijoittaminen main-haaraan. Tämä onnistuu siirtymällä feature/payment-haaraan ja suorittamalla git rebase -komento:

Fast-forward-yhdistäminen

Koska uudelleensijoitus (rebase) onnistui, tarkastellaanpa jälleen kommittipuutamme:

Kuten odotettua, komittihistoria on nyt lineaarinen ja uusin komitti on feature/payment-haarassa. Nyt voimme suorittaa yksinkertaisen fast-forward-yhdistämisen main-haaraan:

Varmistetaan, että molemmat haarat osoittavat samaan komittiin tarkastelemalla uusinta komittia:

Ominaisuushaaran poistaminen

main-haara sisältää nyt uusimman commitin, jossa maksujärjestelmä on toteutettu, joten voimme turvallisesti poistaa sekä paikallisen että etäisen feature/payment-haaran. Seuraava komento poistaa etähaaran:

Nyt voimme poistaa paikallisen haaran:

Lopuksi kaikki tekemämme muutokset voidaan puskea takaisin etävarastoon:

Varmistaaksesi, että feature-haara on poistettu sekä paikallisesti että etänä, voit suorittaa seuraavan komennon, joka listaa kaikki (-a tarkoittaa kaikkia) paikalliset ja etähaarat:

Kuten näet, feature/payment-haara on onnistuneesti poistettu, ja nyt on jäljellä vain kaksi haaraa: main ja john/test sekä niiden etävastineet.

Yleisesti ottaen rebase toimii hyvin paikallisille muutoksille, joita ei ole vielä jaettu, mutta se voi aiheuttaa merkittäviä ongelmia muutoksille, jotka on jo julkaistu etävarastoon ja mahdollisesti ladattu muiden yhteistyökumppaneiden toimesta. Sellaisten commitien uudelleenkäsittely, joita muut käyttävät, voi aiheuttaa sekaannusta ja ristiriitoja, koska commit-historiaa kirjoitetaan uudelleen.

Yleisenä sääntönä vältä rebasaamasta muutoksia, jotka on työnnetty etävarastoihin, jotta nämä ongelmat voidaan välttää.

question mark

Miksi feature/payment suorittaa fast-forward-yhdistämisen sen jälkeen, kun main on rebasaattu git merge feature/payment-haaraan?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
some-alt