Sobes.tech
Junior — Middle

Kuidas eristada git rebase ja git merge käske ning millised on nende peamised erinevused?

sobes.tech AI

Vastus AI-lt

git merge ja git rebase on kaks erinevat käsku, mida kasutatakse muudatuste integreerimiseks ühest harust teise, kuid need töötavad erinevalt.

  • git merge loob uue ühendamiskommiti, mis ühendab mõlema haru ajaloo, säilitades nende paralleelse arengu. Ajalugu jääb harunenud, näidates selgelt, millal ja kuidas ühendamine toimus.

  • git rebase "kirjutab ajaloo ümber", liigutades teie kohalikud kommitid teise haru peale, luues lineaarse ajaloo ilma ühendamiskommitideta. See lihtsustab ajalugu, kuid muudab kommitite hash'e.

Peamised erinevused:

  • Merge säilitab harunenud ajaloo, rebase muudab ajaloo lineaarseks.
  • Pärast rebase'i tuleks olla ettevaatlik avalike harude puhul, kuna ajalugu kirjutatakse ümber.
  • Merge on lihtsam ja turvalisem meeskonnatöö jaoks.

Näide:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Esimesel juhul ilmub ühendamiskommit, teisel juhul "liigutatakse" teie kommitid maini tippu.