Junior
Иҷрои rebase ба шохи асосӣ чӣ маъно дорад?
sobes.tech AI
Ҷавоб аз AI
Иҷрои git rebase main аз шохи ҳозира маънои гузоштани нуқтаи истинодро ба охирин коммити main дорад.
Ин ба тариқи зерин рӯй медиҳад:
- Git ба таври муваққатӣ коммитҳои шохи ҳозираро, ки пас аз нуқтаи ҷудо шудан аз
mainпайдо шудаанд, нигоҳ медорад. - Шохи ҳозира ба ҳолати шохи
mainбарқарор мешавад. - Коммитҳои нигоҳ дошташуда ба таври пайдарпай дар рӯи охирин коммити
mainтатбиқ карда мешаванд.
Фарқиятҳои асосӣ бо merge:
| Хусусият | Rebase |
Merge |
|---|---|---|
| Тарих | Линейӣ, бе коммитҳои ҳамҷоякунӣ | Нелинейӣ, бо коммитҳои ҳамҷоякунӣ |
| Тозаии таърих | Тоза, осонтар барои фаҳмидан | Мумкин аст мушкилтар барои фаҳмидан |
| Мушкилот | Ҳалли мушкилот барои ҳар коммит алоҳида | Ҳалли якбора барои ҳамаи тағирот |
| Истифода | Беҳтар барои шохҳои хурд ва шахсӣ | Беҳтар барои ҳамгироии шохҳои умумӣ |
Масалан:
Таърихи ибтидоӣ:
A -- B -- C (main)
\
D -- E (feature)
Пас аз git checkout feature ва git rebase main:
A -- B -- C (main)
\
D' -- E' (feature)
Куҷо D' ва E' коммитҳои D ва E бо истинодҳои нави падар мебошанд.
Масъалаҳои эҳтимолӣ:
- Мушкилот: Мумкин аст дар вақти татбиқи ҳар коммит рӯй диҳад.
- Навиштани таърих:
rebaseID-ҳои коммитҳоро тағир медиҳад. Ин хатарнок аст агар шумоrebaseкунед дар шохе, ки аллакай нашр шудааст ва дигар таҳиягарон дар он кор мекунанд. Дар ин ҳолат, эҳтимолан лозим аст push-и маҷбурӣ (git push --force), ки бояд бо эҳтиёт анҷом дода шавад.