logo

Гит Ребасе

Поновно базирање је процес за поновну примену урезивања поврх другог основног путовања. Користи се за примену низа урезивања из различитих грана у коначно урезивање. То је алтернатива гит команди спајања. То је линеарни процес спајања.

У Гиту, термин ребасе се помиње као процес премештања или комбиновања низа урезивања у ново основно урезивање. Поновно базирање је веома корисно и визуализује процес у окружењу тока рада који се грана.

Добро је поново базирати своју грану пре спајања.

Гит Ребасе

Генерално, то је алтернатива гит команди спајања. Спајање је увек запис који се мења унапред. Компаративно, ребасе је убедљив алат за преписивање историје у гит-у. Он спаја различите урезивања једну по једну.

Претпоставимо да сте направили три урезивања у својој мастер грани и три у другој грани под називом тест. Ако спојите ово, онда ће спојити сва урезивања у једном тренутку. Али ако га поново базирате, онда ће бити спојен на линеаран начин. Размотрите слику испод:

Гит Ребасе

Горња слика описује како функционише гит ребасе. Три урезивања главне гране су спојена линеарно са урезивања тест гране.

Спајање је најједноставнији начин интеграције грана. Изводи тросмерно спајање између два последња урезивања гране.

Како пребазирати

Када сте направили неке урезивања на грани функције (тест грана) и неке у главној грани. Можете поново базирати било коју од ових грана. Користите гит лог команду да пратите промене (историја урезивања). Наплатите жељену грану коју желите да поново базирате. Сада извршите команду ребасе на следећи начин:

Синтакса:

 $git rebase 

Ако постоје неки конфликти у грани, решите их и извршите следеће команде да бисте наставили измене:

 $ git status 

Користи се за проверу статуса,

 $git rebase --continue 

Горња команда се користи за наставак са изменама које сте направили. Ако желите да прескочите промену, можете да прескочите на следећи начин:

шта је миспаце
 $ git rebase --skip 

Када је поновно базирање завршено. Гурните спремиште до почетка. Размотрите пример у наставку да бисте разумели гит команду спајања.

Претпоставимо да имате грану рецимо тест2 на којој радите. Сада сте на грани тест2 и направили сте неке измене у датотеци пројекта невфиле1.ткт .

Додајте ову датотеку у спремиште:

 $ git add newfile1.txt 

Сада, извршите промене. Користите наредбу испод:

 $ git commit -m 'new commit for test2 branch.' 

Излаз ће изгледати овако:

 [test2 a835504] new commitfor test2 branch 1 file changed, 1 insertion(+) 

Пребаците грану на мастер:

 $ git checkout master 

Излаз:

 Switched to branch 'master.' Your branch is up to date with 'origin/master.' 

Сада сте на главној грани. Додао сам измене у свој фајл, каже невфиле.ткт . Следећа команда се користи за додавање датотеке у спремиште.

 $ git add newfile.txt 

Сада урезујте датотеку за измене:

 $ git commit -m ' new commit made on the master branch.' 

Излаз:

 [master 7fe5e7a] new commit made on master 1 file changed, 1 insertion(+) HiMaNshU@HiMaNshU-PC MINGW64 ~/Desktop/GitExample2 (master) 

Да бисте проверили историју дневника, извршите наредбу испод.

 $ git log --oneline 

Излаз:

Гит Ребасе

Као што видимо у историји дневника, постоји ново урезивање у главној грани. Ако желим да поново базирам своју грану тест2, шта да радим? Погледајте следећи сценарио ребазовања гране:

Ребасе Бранцх

Ако имамо много урезивања из различитих грана и желимо да их спојимо у једну. Да бисмо то урадили, имамо два избора или да га спојимо или поново базирамо. Добро је поново базирати своју грану.

Из горњег примера, обавезали смо се на главну грану и желимо да је поново базирамо на грани тест2. Хајде да видимо следеће команде:

 $ git checkout test2 

Ова команда ће вас укључити на грану тест2 са мастера.

Излаз:

 Switched to branch 'test2.' 

Сада сте на грани тест2. Дакле, можете поново базирати грану тест2 са главном граном. Погледајте доњу команду:

 $ git rebase master 

Ова команда ће поново базирати грану тест2 и приказаће се као Примена: ново урезивање на тест2 грани . Размотрите доњи излаз:

низови јава

Излаз:

Гит Ребасе

Гит Интерацтиве Ребасе

Гит олакшава са Интерацтиве Ребасе; то је моћан алат који омогућава разне операције као што су уредити, преписати, преуредити, и више о постојећим обавезама. Интерацтиве Ребасе може да се користи само на тренутно одјављеној грани. Стога, поставите своју локалну ХЕАД грану на бочну траку.

у јава регуларном изразу

Гит интерактивна ребасе се може позвати командом ребасе, само укуцајте заједно са ребасе командом. овде ' и ' означава интерактивно. Синтакса ове команде је дата у наставку:

Синтакса:

 $ git rebase -i 

Он ће навести све доступне интерактивне опције.

Излаз:

Гит Ребасе

Након датог излаза, отвориће уређивач са доступним опцијама. Размотрите доњи излаз:

Излаз:

Гит Ребасе

Када извршимо гит интерактивну ребасе команду, она ће отворити ваш подразумевани уређивач текста са горњим излазом.

Опције које садржи наведене су у наставку:

  • Пицк
  • Реворд
  • Уредити
  • Скуасх
  • Уредити
  • Екец
  • Пауза
  • Кап
  • Етикета
  • Ресетовати
  • Споји

Горе наведене опције обављају своје специфичне задатке са гит-ребасе. Хајде да укратко разумемо сваку од ових опција.

Изаберите (-п):

Изаберите овде да је урезивање укључено. Редослед урезивања зависи од редоследа команди бирања током поновног базовања. Ако не желите да додате урезивање, морате да избришете цео ред.

Претворба (-р):

Реч је прилично слична команди пицк. Опција реворд је паузирала процес поновног базовања и пружа прилику да се измени порука урезивања. То не утиче на промене које је извршио урезивање.

Измена(е):

Опција за уређивање омогућава измену урезивања. Измена значи, урезивање се може додати или у потпуности променити. Такође можемо направити додатна урезивања пре команде ребасе цонтинуе. Омогућава нам да поделимо велико урезивање на мање урезивање; штавише, можемо уклонити погрешне измене направљене у урезивању.

сквош (-и):

Опција скуасх вам омогућава да комбинујете два или више урезивања у једно урезивање. Такође нам омогућава да напишемо нову поруку урезивања за описивање промена.

Поправка (-ф):

Прилично је слична команди скуасх. Одбацио је поруку урезивања да се споји. Старија порука урезивања се користи за описивање обе промене.

Екец (-к):

Опција екец вам омогућава да покренете произвољне команде љуске против урезивања.

Пауза (-б):

Опција прекида зауставља поновно базирање на самој позицији. Касније ће се поново базирати са ' гит ребасе --настави ' команда.

Испусти (-д):

Опција дроп се користи за уклањање урезивања.

Ознака (-л):

Опција ознаке се користи за означавање тренутне позиције главе именом.

Ресетуј (-т):

Опција ресетовања се користи за ресетовање главе на ознаку.

буббле сорт јава

ГитМерге против Ребасе

За кориснике гит-а је најчешће збуњујуће питање када треба користити команду спајања, а када ребасе. Обе команде су сличне, и обе се користе за спајање урезивања направљених од стране различитих грана спремишта.

Пребазивање се не препоручује у дељеној грани јер ће процес поновног базирања створити недоследна спремишта. За појединце, поновно базирање може бити корисније од спајања. Ако желите да видите комплетну историју, требало би да користите спајање. Мерге прати целу историју урезивања, док ребасе преписује нову.

Гит ребасе команде речено као алтернатива спајању гит-а. Међутим, они имају неке кључне разлике:

Гит Мерге Гит Ребасе
Спајање ствара коначно урезивање при спајању. Гит ребасе не ствара никакво урезивање при поновном базирању.
Спаја све урезивање као једно урезивање. То ствара линеарну стазу урезивања.
То ствара графичку историју која би могла бити мало сложена за разумевање. То ствара линеарну историју која се може лако разумети.
Безбедно је спојити две гране. Гит 'ребасе' се бави озбиљном операцијом.
Спајање се може извршити и на јавним и на приватним филијалама. Погрешан је избор користити ребасинг на јавним гранама.
Спајањем се интегрише садржај гране карактеристика са главном граном. Дакле, главна грана је промењена, а историја гране карактеристика остаје доследна. Поновно базирање главне гране може утицати на грану карактеристика.
Спајање чува историју. Ребасинг поново исписује историју.
Гит мерге представља све конфликте одједном. Гит ребасе представља конфликте један по један.