Sobes.tech
Junior

Mida tähendab teha rebase peamisele harule?

sobes.tech AI

Vastus AI-lt

Teostada git rebase main oma haru tähendab teie haru aluspunkti viimise viimase main komitini.

See toimub järgmiselt:

  1. Git ajutiselt salvestab teie praeguse haru komitid, mis ilmusid pärast selle haru eraldumist main-ist.
  2. Teie praegune haru lähtestatakse main-i seisundile.
  3. Salvestatud komitid rakendatakse järjekorras main-i viimase komiti kohale.

Peamised erinevused merge-ga:

Omadus Rebase Merge
Ajalugu Jooneline, ei ole ühendamiskomiteid Mitte-jooneline, on ühendamiskomiteid
Ajaloo puhtus Puhasem, lihtsam mõista Võib olla keerulisem mõista
Konfliktid Lahendatakse iga komiti puhul eraldi Lahendatakse üks kord kõigi muudatuste jaoks
Kasutus Soovitatav väikestele, isiklikele harudele Soovitatav avalike harude integreerimiseks

Näide:

Algne ajalugu:

A -- B -- C (main)
      \
       D -- E (feature)

Pärast git checkout feature ja git rebase main:

A -- B -- C (main)
           \
            D' -- E' (feature)

Kus D' ja E' on D ja E komitid uue vanem-atseseidipunktiga.

Võimalikud probleemid:

  • Konfliktid: võivad tekkida iga komiti rakendamisel.
  • Ajaloo ümberkirjutamine: rebase muudab komitite ID-sid. See on ohtlik, kui teete rebase harule, mis on juba avaldatud ja millega tegelevad teised arendajad. Sellisel juhul võib osutuda vajalikuks sundpush (git push --force), seda tuleb teha ettevaatusega.