Гит бисецт: Како препознати грешку у коду?



У овом чланку о гит бисецт сазнајте како наредба ‘гит бисецт’ помаже у откривању првог лошег урезивања које уводи грешку помоћу бинарног алгоритма претраживања.

Мој код је добро функционисао до јуче, али не док недавни потез из удаљеног спремишта није покварио код !!!

Ако сте у сличној ситуацији и не знате каква промена разбио шифру или ко од многих сарадника поседује ово грешка / карактеристика , онда је гит бисецт ваш излаз. Дакле, у овом чланку о гит бисецту научићете какогит бисецт‘Заповест долази до спасавање у откривању првог лошег урезивања које уводи грешку помоћу бинарног алгоритма претраживања.

Теме обухваћене овим чланком су следеће:





коначно и финализирати у јави

Зашто користити гит бисецт?

Нема сумње у чињеницу да имате тенденцију да направите одређени број завеза за сваку мању промену у . У таквом сценарију отклањање грешака у коду постаје досадан задатак, јер морате ручно да се вратите у прошлост на сваку поједину ревизију снимка пројекта како бисте тестирали радни код и открили грешку. Сада ово постаје још више комплекс када имате туђи посао да га прегледате без водеће тачке, такође захтевање да свако од њих поправи своје грешке такође не звучи изводљиво.
Успут, такође можете створити и одбацити бројне гране „карактеристика“ (или хитних исправки) у процесу и на крају губити време и труд док одступате од главне линије развоја.



Дакле, да бисте избегли такве сценарије, можете да користитегит бисецтнаредба да се пронађе лоша ревизија пројекта (или снимак) и на крају поправи помоћугит реверткоманда.

Како претражује „гит бисецт“?



Ова наредба расположени (дели) вашу историју између Добро и лоше урадити домет. Указује на ваше Тренутни пројекат стање до а средње класе урадити снимак. Команда гит бисецт се затим помера сваки ИД ид између овог опсега док застајкивање на сваком снимку да вам дозволи тестирајте код . Ако грешка постоји, проглашавате урезивање као лоше, ако не као Добро осим ако се претрага не заврши.

Синтакса

гит бисецт

Да бисмо боље разумели гит бисецт, направимо пројекат који развија код за једноставну навигациону апликацију која ће се користити у аутомобилу.

Иницијално подешавање пројекта

Да бисте креирали пројекат који развија код за једноставну навигациону апликацију која ће се користити у аутомобилу, следите следеће кораке:

Корак 1: Направите нови директоријум у директоријуму $ ХОМЕ:

цд $ ХОМЕ мкдир ми_нав_апп

Корак 2: Идите до новог директоријума:

цд $ ми_нав_апп

Корак 3: Клонирајте да бисте преузели пројекат са моје ГитХуб странице:

гит клон хттпс://гитхуб.цом/дивиабхусхан/ми_нав_апп.гит

Сада, да схватимо директоријуме пројеката и распоред датотека, како је одштампана наредбом:лс -лТР

Изглед изворног кода - Гит Бисецт - Едурека

Даље, погледајмо дневник историје пројекта како бисмо прегледали обавезе које сам направио да бих генерисао овај код-

На пример, једноставна гит лог команда детаљно исписује историју, међутим, волим да прилично форматирам и прилагодим историју. Стога, дозволите нам поставите алиас име - „хист“ помоћу гит алиас наредба као што је приказано доле:

гит алиас.хист 'лог --претти = формат:'% Ц (жути)% х% Цресет% ад | % Ц (зелено)% с% Цресет% Ц (црвено)% д% Цресет% Ц (плаво) [% ан] '--грапх --децорате --дате = схорт'

Сада ћу извршити ову функцију исправке грешака у засебној грани, како не бих ометао главни развој на „мастер“ грани. Да бисте то урадили, следите доњи скуп наредби:

  • Направите грану „дев“: [мастер] $гит бранцх дев
  • Пребаците се на грану „дев“: $гит цхецкоут дев
  • Наведите евиденције историје: [дев] $иди ист[Напомена: Овде се користи команда „алиас“]

Даље, истакао сам последњу познату добру урезивање за коју знам да је моја скрипта добро функционисала са очекиваним резултатима тест случаја, овај снимак урезивања је тагована као в1.0.

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

Тестирајте апликацију

Покрените скрипту као - $./сцриптс/миАпплицатион.сх[тестирање први пут]



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

Идентификација лошег урезивања

Да бисте започели инспекцију због лошег урезивања, следите следеће кораке:

  • Покрените команду бисецт :гит бисецт старт
  • Наведите лош ИД извршења: гит бисецт бад ХЕАДилигит бисецт ц5б3ца8
  • Наведите последњи познати ид доброг урезивања: гит бисецт гоод в1.0илигит бисецт 93859д8

Ово дијели историју урезивања на распон отприлике на пола између добрих и лоших урезивања што нас доводи до ид-а урезивања: ф61а7е8

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

Наредба за покретање апликације : $./сцриптс/миАпплицатион.сх[тестирање други пут]


Од пријаве положио у овом урезивање, ово урезивање сигурно није лоше урезивање. Дакле, затим морате наредити бисецт исто као - $гит бисецт гоод


Сада ће ово додатно сузити резултат претраге у прву половину опсега као што је приказано -


Поново тестирајте своју апликацију - Команда: $./сцриптс/миАпплицатион.сх[тестирање трећи пут]


Дакле, пошто видимо грешку као горе, ово је лоше урезивање.

Обавестите команду бисецт, покрените $гит бисецт бад


То додатно сужава претрагу и доводи вас до последње плаве окружене средње ревизије: а6ац769

Дакле, тестирам своју апликацију последњи пут користећи исту наредбу: $./сцриптс/миАпплицатион.сх[четврти тест]

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

Покрените наредбу: гит бисецт бад

Пронађена је лоша урезивање

Овим је закључен једини последњи уреза који је остао лош -


Дакле, знате да је овде код пукао. Шта даље?

Разумети у којој је датотеци била грешка

У овом случају, излаз вам даје минималне информације о цоммит ид , име аутора , и аутор датума заједно са предати поруку и пут то је модификовано.

Ако желите да даље отклоните грешке, то требате читати тхе цоммит ид објекта .

Команда: гит схов а6ац76994б3ф6ц7519204ф910фц787б7928цф8еф

Ово ће прочитати објект урезивања и исписати поруку дневника и текстуалну разлику.

Можете користити и команду ‘гит кривде’ да бисте анализирали како и у ком урези који је сваки аутор променио сваки ред, покрените команду као:гит крив код / ​​развијај_нав.ш

Зауставите претрагу

Да бисте зауставили претрагу, користите следећу команду:

Команда: гит бисецт ресет


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

Како исправити / отклонити грешке у коду?

Па, постоји неколико заобилазних решења која бисте могли да учините да бисте поправили тренутно стање на пројекту сада када сте идентификовали урезивање које је прво донело грешку.
Међутим, ако мењате урезивање на а заједничко спремиште најбоље је да вратити се промена помоћу „ гит реверт ‘Заповест.

Задатак: Вратите промене учињене поменутим лошим урезивањем

Команда: гит реверт а6ац769

Као резултат, враћање промена направљених овим урезивањем учинило је 2 ствари:

  • Избрисала је последња 3 додата реда (означена зеленом бојом) и вратила избрисани ред (означила црвеном бојом). (реверс од а6ац769)
  • Направио је додатни запис са информацијама о враћању поруке

„Команда за враћање такође олакшава праћење промене коју сте вратили из оригиналног урезивања“

Користити 'Прикажи' наредити поново за читање ид објекта, попут со-

Команда: гит схов 801ф029

Сада идите напред и тестирајте апликацију. Извршиће се правилно.

улоге и одговорности линук администратора система

Команда: $./сцриптс/миАпплицатион.сх

Насупрот томе, ако желите уклонити лоше урезивање из историје:

  • Можете користити „ гит ресет „Команда са„- тешко”Опција (мада се не препоручује у дељеном спремишту).

  • Погледајте ранију верзију једне датотеке користећи „гит цхецкоут„Команда са„-' опција.

Треба напоменути да ће ово унети промене само у ваше локално спремиште све док промене не потиснете у удаљено спремиште. Будући да неке промене стварају нови ИД објекта урезивања, као у нашем случају горе, у таквим случајевима се одбија нормално пуштање у удаљено спремиште јер би се историја разилажила. Морате да користите „ гит пусх „Команда са„--сила' опција.

Ажурирајте грану „мастер“

Иако сам отклонио грешку на својој „дев“ грани, сада могу да спојим ову промену са „мастер“ граном-

  • пребаците се на „мастер“, наредба:гит цхецкоут мастер
  • повуците недавна ажурирања из „оригин / мастер“ у „мастер“, наредба:гит пулл порекло
  • објединити промене „дев“, наредба:гит мерге див

Међутим, ваше спајање може генерисати сукобе ако има више предавања из удаљеног спремишта. Решите сукобе и наставите са спајањем.
И на крају, гурните само стабилне „мастер“ гране урезивања у удаљено спремиште док прљаве послове (грешке, функције, побољшања) обављате само на гранама функција као што је „дев“ у овом примеру.
Штавише, најбоље је усвојити логично стратегија гранања да бисте поједноставили и осигурали свој гит процес рада.

Да резимирамо, „гит бисецт“ је згодна и корисна команда која брзо идентификовати тхе цоммит ид то представио до грешка у вашем покренутом коду уз помоћ опсежног бинарна претрага логично подела евиденција урезивања на пола пута између Добро и лоше урадити домет . Да закључим, научили сте открити неисправна предаја и вратити се промена која је њиме извршена.

Поред тога, за поднаредбе „добро“ и „лоше“ такође можете да користите термине попут новог и старог да бисте описали стање ревизије. Можете извршити наредбу више пута пролазећи различите поднаредбе и ревидирати / урезати ИД-ове да бисте идентификовали различите ИД-ове урезивања (схе-1). Алтернативно, аутоматска скрипта за тестирање се такође може покренути за изградњу сломљеног кода помоћу ове наредбе. Такође пронађите детаљан опис ове наредбе покретањемгит бисецт --помагањена терминалу. Дакле, људи с овим дошли смо до краја овог чланка о Гит Бисецту.

Намера ДевОпс-а је да створи квалитетнији софтвер брже и са више поузданости, истовремено позивајући на већу комуникацију и сарадњу између тимова. Ако вас овај чланак заинтригира, ц извините Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250 000 задовољних ученика раширених широм света. Едурека ДевОпс сертификациони курс помаже ученицима да разумеју шта је ДевОпс и стекну стручност у различитим ДевОпс процесима и алатима као што су Пуппет, Јенкинс, Нагиос, Ансибле, Цхеф, Салтстацк и ГИТ за аутоматизацију више корака у СДЛЦ-у.

Имате питање за нас? Молимо вас да га спомињете у одељку за коментаре чланка „Гит Бисецт“ и јавићемо вам се што пре.