Sobes.tech
Junior — Middle

Тавзеҳ диҳед, ки истифодаи фармонҳои git rebase ва git merge дар ворид кардани тағирот ба шохаҳо чӣ фарқ дорад.

sobes.tech AI

Ҷавоб аз AI

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

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

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

Масалан:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

Вақте истифода бурдан:

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

Муҳим: тавсия дода намешавад rebase дар шохаҳои умумӣ, зеро ин таърихро тағир медиҳад ва метавонад муноқишаҳо дар дигар таҳиягаронро ба вуҷуд орад.