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
Tarkastellaan nyt commit-puuta:
git log --graph --oneline --all
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
Fast-forward-yhdistäminen
Koska rebase onnistui, tarkastellaan uudelleen commit-puuta:
git log --graph --oneline
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
Varmistetaan, että molemmat haarat osoittavat samaan kommitiin tarkastelemalla viimeisintä kommitia:
git log -n 1
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
Lopuksi kaikki tekemämme muutokset voidaan työntää takaisin etärepositorioon:
git push
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
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ää.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme