Гит Упореди две гране

Git Compare Two Branches



Скоро сви системи за контролу верзија имају опције гранања. Али Гит је познат по својим могућностима брзог гранања. Гит гране су лагане. Дакле, казне за перформансе за гранање су минималне, а развојни тимови се охрабрују да се гранају и спајају што је више могуће. Али када радите са више грана, важно је да можете упоредити и упоредити разлике. У овом водичу ћемо проћи кроз ток рада да видимо како можемо упоредити различите гране и урезивања. Хајде да прво поставимо следећу ситуацију:

Ц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 @@

деф маин():
принт('Фирст Хелло!')
- штампа('Сецонд Хелло!')
+ штампа(„Развојна грана каже„ Здраво “)

ако__наме__ =='__главни__':
главни()

Можете користити исти принцип за поређење урезивања унутар исте гране.


Алати за визуелно спајање

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

Даље истраживање:

Референце: