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.