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

Rebase-Operaation Suorittaminen

Pyyhkäise näyttääksesi valikon

Muutosten uudelleensijoittaminen main-haaraan

Ennen kuin voimme suorittaa uudelleensijoittamisen, meidän täytyy ensin siirtyä main-haaraan ja hakea viimeisimmät muutokset:

git checkout main
git pull
Main-haaraan siirtyminen ja muutosten hakeminen

Tarkastellaan nyt commit-puuta:

git log --graph --oneline --all
Commit-puu ennen rebase-toimintoa

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

Jos nämä haarat yhdistettäisiin, tapahtuisi kolmitieyhdistäminen. Haluamme kuitenkin pitää historian lineaarisena, joten suoritetaan feature/payment-haaran uudelleensijoitus päälle main-haaran. Tämä onnistuu siirtymällä feature/payment-haaraan ja suorittamalla git rebase-komento:

git checkout feature/payment
git rebase main
Muutosten uudelleensijoitus (rebase)

Fast-forward-yhdistäminen

Koska rebase onnistui, tarkastellaan uudelleen commit-puuta:

git log --graph --oneline
Commit-puu rebasen jälkeen

Kuten odotettua, commit-historia on nyt lineaarinen ja uusin commit on feature/payment-haarassa. Nyt voidaan tehdä yksinkertainen fast-forward-yhdistäminen main-haaraan:

git checkout main
git merge feature/payment
Haaraumien yhdistäminen

Varmistetaan, että molemmat haarat osoittavat samaan kommitiin tarkastelemalla viimeisintä kommitia:

git log -n 1
Viimeisin kommit

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:

git push --delete origin feature/payment

Nyt voimme poistaa paikallisen haaran:

git branch -d feature/payment
Haarojen poistaminen

Lopuksi kaikki tekemämme muutokset voidaan työntää takaisin etärepositorioon:

git push
Poiston työntäminen

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:

git branch -a
Kaikkien haarojen listaaminen

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 uudelleenasemointi (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 uudelleenasemointi, joita muut käyttävät, voi aiheuttaa sekaannusta ja ristiriitoja, koska commit-historiaa kirjoitetaan uudelleen.

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

question mark

Miksi feature/payment tekee fast-forward-yhdistämisen, kun main on uudelleenasemoitu git merge feature/payment-haaraan?

Valitse oikea vastaus

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

Osio 3. Luku 5
some-alt