Junior — Middle
Cum să diferențiezi comenzile git rebase și git merge și care sunt principalele lor diferențe?
sobes.tech AI
Răspuns de la AI
git merge și git rebase sunt două comenzi diferite pentru a integra modificări dintr-o ramură în alta, dar funcționează diferit.
-
git merge creează un nou commit de îmbinare care unește istoricul ambelor ramuri, păstrând dezvoltarea lor paralelă. Istoricul rămâne ramificat, arătând clar când și cum a avut loc îmbinarea.
-
git rebase "rescrie" istoria, mutând commit-urile tale locale peste o altă ramură, creând un istoric liniar fără commit-uri de îmbinare. Acest lucru simplifică istoricul, dar schimbă hash-urile commit-urilor.
Diferențele principale:
- Merge păstrează istoricul ramificat, rebase face istoria liniară.
- După rebase, trebuie să fii atent la ramurile publice, deoarece istoria este rescrisă.
- Merge este mai simplu și mai sigur pentru colaborare.
Exemplu:
# merge
git checkout feature
git merge main
# rebase
git checkout feature
git rebase main
În primul caz, va apărea un commit de îmbinare, în al doilea, commit-urile tale vor fi "mutate" pe vârful main.