Sobes.tech
Junior — Middle

Чӣ тавр фарқ кардани фармонҳои git rebase ва git merge ва асосии фарқиятҳои онҳо чист?

sobes.tech AI

Ҷавоб аз AI

git merge ва git rebase — ин ду фармонҳои гуногун барои ҳамгироии тағирот аз як шоха ба дигар аст, аммо онҳо ба таври гуногун кор мекунанд.

  • git merge як коммити нав барои ҳамгироӣ месозад, ки таърихи ҳарду шохаро якҷоя мекунад ва рушдрои параллелиро нигоҳ медорад. Таърих боқӣ мемонад ва равшан нишон медиҳад, ки кай ва чӣ гуна ҳамгироӣ сурат гирифтааст.

  • git rebase "тартиб"-и таърихро нав мекунад, бо гузоштани коммитҳои маҳаллии шумо болои шохаи дигар, таърихи хаттӣ бе коммитҳои ҳамгироиро месозад. Ин таърихро содда мекунад, аммо хешҳои коммитҳоро тағир медиҳад.

Фарқиятҳои асосӣ:

  • Merge таърихи шохаҳои гуногунро нигоҳ медорад, rebase таърихро хаттӣ мекунад.
  • Пас аз rebase, бояд бо шохаҳои умумӣ эҳтиёт бошед, зеро таърих навишта мешавад.
  • Merge осонтар ва бехатартар барои кор дар гурӯҳ.

Масалан:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Дар аввал, коммити ҳамгироӣ пайдо мешавад, дар дуввум, коммитҳои шумо "мебаранд" ба сари main.