Sobes.tech
Junior

Иҷрои rebase ба шохи асосӣ чӣ маъно дорад?

sobes.tech AI

Ҷавоб аз AI

Иҷрои git rebase main аз шохи ҳозира маънои гузоштани нуқтаи истинодро ба охирин коммити main дорад.

Ин ба тариқи зерин рӯй медиҳад:

  1. Git ба таври муваққатӣ коммитҳои шохи ҳозираро, ки пас аз нуқтаи ҷудо шудан аз main пайдо шудаанд, нигоҳ медорад.
  2. Шохи ҳозира ба ҳолати шохи main барқарор мешавад.
  3. Коммитҳои нигоҳ дошташуда ба таври пайдарпай дар рӯи охирин коммити 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 бо истинодҳои нави падар мебошанд.

Масъалаҳои эҳтимолӣ:

  • Мушкилот: Мумкин аст дар вақти татбиқи ҳар коммит рӯй диҳад.
  • Навиштани таърих: rebase ID-ҳои коммитҳоро тағир медиҳад. Ин хатарнок аст агар шумо rebase кунед дар шохе, ки аллакай нашр шудааст ва дигар таҳиягарон дар он кор мекунанд. Дар ин ҳолат, эҳтимолан лозим аст push-и маҷбурӣ (git push --force), ки бояд бо эҳтиёт анҷом дода шавад.