Sobes.tech
Junior — Middle

Koja je razlika između komandi 'git merge' i 'git rebase' prilikom spajanja grana u sistemu kontrole verzija Git?

sobes.tech АИ

Одговор од АИ

Komande git merge i git rebase se oba koriste za spajanje promena iz jedne grane u drugu, ali to rade na različite načine:

  • git merge kreira novi commit spajanja koji ujedinjuje istoriju obe grane, zadržavajući njihovu paralelnu istoriju.

    • Primer:
      git checkout master
      git merge feature-branch
      
    • Istorija grana ostaje razgranata, pokazujući kada i koje grane su spojene.
  • git rebase premešta (prepisuje) commit-ove iz jedne grane na drugu, stvarajući linearnu istoriju bez commit-ova spajanja.

    • Primer:
      git checkout feature-branch
      git rebase master
      
    • To je kao da započinjete novu granu od poslednjeg commit-a na master-u, pojednostavljujući istoriju, ali menjajući hash-ove commit-ova.

Kada koristiti:

  • merge je zgodan za očuvanje cele istorije i kada je važna transparentnost grananja.
  • rebase je koristan za pojednostavljenje istorije pre spajanja u glavnu granu, da bi se izbegli suvišni commit-ovi spajanja.

Važno je zapamtiti da rebase menja istoriju, stoga se ne preporučuje da se radi rebase na javnim granama koje su već dostupne drugima.