Дар бораи фарқият дар рафтор ва истифодаи фармонҳои git merge ва git rebase ҳангоми ҳамгироии тағиротҳо чӣ аст?
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 истифода баред.