Скоро сви системи за контролу верзија имају опције гранања. Али Гит је познат по својим могућностима брзог гранања. Гит гране су лагане. Дакле, казне за перформансе за гранање су минималне, а развојни тимови се охрабрују да се гранају и спајају што је више могуће. Али када радите са више грана, важно је да можете упоредити и упоредити разлике. У овом водичу ћемо проћи кроз ток рада да видимо како можемо упоредити различите гране и урезивања. Хајде да прво поставимо следећу ситуацију:
Ц00 => Ц01 => Ц03 => Ц06 (мастер)
Ц02 => Ц04 => Ц05 (развој)
Предузети су следећи кораци:
- Ц00: Додато хелло_ворлд.пи (главна грана)
- - Креирао развојну грану
- Ц01: Измењен хелло_ворлд.пи за додавање другог хелло (главна грана)
- Ц02: Измењено хелло_ворлд.пи да се дода развојна грана каже Здраво (развојна грана)
- Ц03: Додато реадме.ткт (главна грана)
- Ц04: Измењено хелло_ворлд.пи да се дода развојна грана и каже „Здраво поново“ (развојна грана)
- Ц05: Додан инфо.ткт (развојна грана)
- Ц06: Измењен реадме.ткт за додавање другог реда (главна грана)
Након свих урезивања, грана „мастер“ има следеће датотеке:
хелло_ворлд.пи
реадме.ткт
А грана „развој“ има следеће датотеке:
хелло_ворлд.пи
инфо.ткт
Поређење глава две гране
Можете користити назив грана за упоређивање глава две гране:
$гит диффмајстор..развојдифф -годо/хелло_ворлд.пи б/хелло_ворлд.пи
индекс е27ф806..3899ед3100644
---до/хелло_ворлд.пи
+++ б/хелло_ворлд.пи
@@-2,7+2,7 @@
деф маин():
принт('Фирст Хелло!')
- штампа('Сецонд Хелло!')
-
+ штампа(„Развојна грана каже„ Здраво “)
+ штампа(„Развојна грана каже„ Здраво поново “)
ако__наме__ =='__главни__':
главни()
дифф -годо/инфо.ткт б/инфо.ткт
Новафилемоде100644
индекс 0000000..0аб52фд
--- /дев/нула
+++ б/инфо.ткт
@@-0,0+1 @@
+Нове информације
дифф -годо/реадме.ткт б/реадме.ткт
избрисанфилемоде100644
индекс е29ц296..0000000
---до/реадме.ткт
+++/дев/нула
@@-1,2+0,0 @@
-1Први ред реадме.ткт
-2Други ред реадме.ткт
Команда дифф рекурзивно гледа промене. Покренуо је следеће разлике:
дифф –гит а/хелло_ворлд.пи б/хелло_ворлд.пи
дифф –гит а/инфо.ткт б/инфо.ткт
дифф –гит а/реадме.ткт б/реадме.ткт
Овде „а“ означава „мастер“ грану, а „б“ означава развојну грану. 'А' је увек додељено првом параметру, а 'б' другом параметру. /Дев /нулл значи да грана нема датотеку.
Поређење између урезивања
У нашем примеру, „мастер“ грана има следеће урезивања:
$гит статусНа мастер грани
ништа за обавезивање, радни именик чист
$гит лог --једна линија
цаа0ддд Ц06: Измењен реадме.ткт за додавање другог реда(мастер бранцх)
ефаба94 Ц03: Додато реадме.ткт(мастер бранцх)
ее60еац Ц01: Измењен хелло_ворлд.пи за додавање другог хелло(мастер бранцх)
22б4бф9 Ц00: Додато хелло_ворлд.пи(мастер бранцх)
Развојна грана има следеће обавезе:
$гит статусО развоју грана
ништа за обавезивање, радни именик чист
$гит лог --једна линија
дф3а4ее Ц05: Додан инфо.ткт(развојна грана)
0ф0абб8 Ц04: Измењен хелло_ворлд.пи за додавање развојне гране каже Здраво поново(развојна грана)
3ф611а0 Ц02: Измењен хелло_ворлд.пи за додавање развојне гране каже Здраво(развојна грана)
22б4бф9 Ц00: Додато хелло_ворлд.пи(мастер бранцх)
Претпоставимо да желимо да упоредимо хелло_ворлд.пи за урезивања Ц01 и Ц02. Помоћу хешева можете упоредити:
$гит диффее60еац: хелло_ворлд.пи 3ф611а0: хелло_ворлд.пидифф -годо/ее60еац: хелло_ворлд.пи б/3ф611а0: хелло_ворлд.пи
индекс е27ф806..72а178д100644
---до/ее60еац: хелло_ворлд.пи
+++ б/3ф611а0: хелло_ворлд.пи
@@-2,7+2,7 @@
деф маин():
принт('Фирст Хелло!')
- штампа('Сецонд Хелло!')
+ штампа(„Развојна грана каже„ Здраво “)
ако__наме__ =='__главни__':
главни()
Можете користити исти принцип за поређење урезивања унутар исте гране.
Алати за визуелно спајање
Поређење на основу текста може бити тешко. Ако подесите Гит диффтоол са апликацијом за визуелно спајање попут ДиффМерге или Ван поређења , моћи ћете боље да видите разлике.
Даље истраживање:
- Гит Дифф Доцументатион
- Гит ДиффТоол Доцументатион
- ДиффМерге подешавање са ДиффТоол -ом
- БеиондЦомпаре Сетуп витх ДиффТоол
Референце:
- Гит Туториал: Дифф анд Мерге Тоолс , ЈуТјуб
- хттп://цодинг4стреетцред.цом/блог/пост/цонфигуре-диффмерге-фор-иоур-гит-диффтоол
- хттп://гитбаби.цом/хов-то-дифф-оне-филе-то-ан-арбитрари-версион-ин-гит.хтмл
- хттпс://гит-сцм.цом/боок/ен/в2/Гит-Бранцхинг-Басиц-Бранцхинг-анд-Мергинг
- хттпс://гит-сцм.цом/боок/ид/в2/Гит-Бранцхинг-Бранцхес-ин-а-Нутсхелл
- хттпс://гит-сцм.цом/доцс/гит-дифф
- хттпс://гит-сцм.цом/доцс/гит-диффтоол
- хттпс://соурцегеар.цом/диффмерге/
- хттпс://соурцегеар.цом/диффмерге/вебхелп/сец__гит__линук.хтмл
- хттпс://стацковерфлов.цом/куестионс/9834689/цомпаринг-тво-бранцхес-ин-гит
- хттпс://веерасундар.цом/блог/2011/06/гит-туториал-цомпаринг-филес-витх-дифф/
- хттпс://ввв.сцоотерсофтваре.цом/феатурес.пхп
- хттпс://ввв.сцоотерсофтваре.цом/суппорт.пхп?зз=кб_вцс