Простае перабазіванне камітаў у Git
Сістэма Git прадастаўляе два спосабы ўнясення зменаў пры працы з галінамі: зліццё і перабазіванне.
Годнасцю перабазівання з'яўляецца тое, што гісторыя камітаў абодвух галін, у адрозненне ад зліцця, будзе выглядаць больш лінейнай і простай для ўспрыняцця чальцамі каманды, якая працуе над адным праектам.
У Git зліццё, якое выконваецца з дапамогай
каманды merge, адбываецца як
трохбаковы аб'яднанне апошніх зменаў
двух зліваемых галін і самага новага здымка
бацькоўскай галіны, агульнай для гэтых зліваемых галін.
Пры гэтым зліваюцца толькі канчатковыя здымкі
камітаў галін, а не ўся іх
папярэдняя гісторыя.
Перабазіванне прадугледжвае ўжыванне зменаў
з адной галіны (бягучай) паверх іншай галіны (якая зліваецца
з бягучай). Давайце створым галіну test, у якой
мы зробім новы файл file.txt,
прапрайндэксуем яго і зробім каміт:
git branch test
git switch test
git add file.txt
git commit -m "commit from branch test"
Цяпер пераключымся на галіну test
і перабазуем яе адносна галоўнай
галiны master:
git checkout test
git rebase master
Сам працэс перабазівання адбываецца наступным
чынам: спачатку Git робіць здымак бацькоўскай галіны
master, які захоўваецца ў часовым файле. Затым
бягучая галіна test устаўляе свае змены
пасля самага апошняга каміта галіны master.
Цяпер гісторыя камітаў асноўнай галіны будзе
выглядаць так:
Пасля перабазівання гісторыя камітаў
галiны test таксама будзе выглядаць
аналогічна галiне master.
Зачым гэтага можна перайсці на галіну master
і выканаць зліццё перамоткай,
г.зн. master зноў стане галоўнай і ўключыць
у сябе ўсе змены з галіны test:
git merge test
Стварыце дзве галіны test1 і test2,
у кожнай з якіх будзе па тры каміта на
розныя файлы, затым выканайце іх
зліццё простым перабазіваннем.