Sobes.tech
Junior — Middle

Hogyan különböztetjük meg a git rebase és git merge parancsokat, és mik a fő különbségek?

sobes.tech MI

Válasz az MI-től

git merge és git rebase két külön parancs, amelyek a változtatások egyik ágról a másikra történő integrálására szolgálnak, de különböző módon működnek.

  • git merge létrehoz egy új egyesítési commitet, amely összefogja mindkét ág történetét, miközben fenntartja párhuzamos fejlődésüket. A történet továbbra is elágazó marad, világosan mutatva, mikor és hogyan történt az egyesítés.

  • git rebase "újraírja" a történetet, áthelyezve a helyi commitokat egy másik ág fölé, létrehozva egy lineáris történetet egyesítési commitok nélkül. Ez egyszerűsíti a történetet, de megváltoztatja a commitok hash-ét.

Fő különbségek:

  • A merge megőrzi az elágazó történetet, a rebase lineárissá teszi.
  • Rebase után óvatosnak kell lenni nyilvános ágakkal, mivel a történet újraírásra kerül.
  • A merge egyszerűbb és biztonságosabb csapatmunkához.

Példa:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Az első esetben egy egyesítési commit jelenik meg, a másodikban a commitjaid "áthelyeződnek" a main tetejére.