Ipaghambing ang Dalawang Sanga

Git Compare Two Branches



Halos lahat ng mga sistema ng kontrol sa bersyon ay may mga pagpipiliang sumasanga. Ngunit ang Git ay kilala sa mabilis na mga kakayahan sa pagsasanga. Ang mga sanga ng Git ay magaan. Kaya't ang mga parusa sa pagganap para sa pagsasanga ay minimal at ang mga koponan sa pag-unlad ay hinihikayat na sumalang at pagsamahin hangga't maaari. Ngunit kapag nagtatrabaho ka sa maraming mga sangay, mahalagang maihambing at naiiba ang mga pagkakaiba. Sa tutorial na ito, dumadaan kami sa isang daloy ng trabaho upang makita kung paano namin maihahambing ang iba't ibang mga sangay at mga pangako. Una nating i-set up ang sumusunod na sitwasyon:

C00 => C01 => C03 => C06 (master)









C02 => C04 => C05 (pag-unlad)



Ang mga sumusunod na hakbang ay ginawa:





  • C00: Nagdagdag ng hello_world.py (master branch)
  • - Nilikha ang development branch
  • C01: Binago ang hello_world.py upang magdagdag ng pangalawang hello (master branch)
  • C02: Binago ang hello_world.py upang idagdag ang Development branch sabi ng Hello (development branch)
  • C03: Idinagdag readme.txt (master branch)
  • C04: Binago ang hello_world.py upang idagdag ang Development branch sabi muli Kumusta (development branch)
  • C05: Nagdagdag ng info.txt (development branch)
  • C06: Binago ang readme.txt upang magdagdag ng pangalawang linya (master branch)

Matapos ang lahat ng mga pangako, ang sangay na 'master' ay may mga sumusunod na file:

hello_world.py
readme.txt



At ang sangay na 'pag-unlad' ay may mga sumusunod na file:

hello_world.py
info.txt


Paghahambing ng mga ulo ng dalawang sangay

Maaari mong gamitin ang pangalan ng mga sanga upang ihambing ang mga ulo ng dalawang sangay:

$git diffmaster..pag-unlad

naiiba --gosa/hello_world.py b/hello_world.py
index e27f806..3899ed3100644
---sa/hello_world.py
+++ b/hello_world.py
@@-2,7+2,7 @@

def pangunahing():
mag-print('Una Kumusta!')
- i-print('Pangalawa Kumusta!')
-
+ print('Ang sangay ng pagpapaunlad ay nagsabi ng Kamusta')
+ print('Ang sangay ng pag-unlad ay nagsabi ulit Kumusta')
kung__name__ =='__main__':
pangunahing()
naiiba --gosa/info.txt b/info.txt
bagofilemode100644
index 0000000..0ab52fd
--- /dev/wala
+++ b/info.txt
@@-0,0+1 @@
+ Bagong impormasyon
naiiba --gosa/readme.txt b/readme.txt
tinanggalfilemode100644
index e29c296..0000000
---sa/readme.txt
+++/dev/wala
@@-1,2+0,0 @@
-1Unang linya ng readme.txt
-2Pangalawang linya ng readme.txt

Ang diff command ay recursively na tinitingnan ang mga pagbabago. Pinatakbo nito ang mga sumusunod na pagkakaiba:

diff –git a / hello_world.py b / hello_world.py
diff –git a / info.txt b / info.txt
diff –git a / readme.txt b / readme.txt

Narito ang 'a' ay nangangahulugang sangay na 'master' at ang 'b' ay nangangahulugang sangay ng pag-unlad. Ang 'a' ay laging nakatalaga sa unang parameter at 'b' sa pangalawang parameter. Ang ibig sabihin ng / dev / null ay walang file ang sangay.


Paghahambing sa pagitan ng mga pangako

Sa aming halimbawa, ang sangay na 'master' ay may mga sumusunod na mga pangako:

$katayuan git
Sa branch master
walang dapat gawin, malinis ang pagtatrabaho ng direktoryo

$git log --isang linya
caa0ddd C06: Binago ang readme.txt upang magdagdag ng pangalawang linya(master branch)
efaba94 C03: Idinagdag readme.txt(master branch)
ee60eac C01: Binago ang hello_world.py upang magdagdag ng pangalawang hello(master branch)
22b4bf9 C00: Nagdagdag ng hello_world.py(master branch)

Ang sangay sa pagpapaunlad ay may mga sumusunod na mga pangako:

$katayuan git
Sa pag-unlad ng sangay
walang dapat gawin, malinis ang pagtatrabaho ng direktoryo

$git log --isang linya
df3a4ee C05: Naidagdag ang info.txt(sangay sa pag-unlad)
0f0abb8 C04: Binago ang hello_world.py upang idagdag ang Development branch sabi muli Kumusta(sangay sa pag-unlad)
3f611a0 C02: Binago ang hello_world.py upang idagdag ang Development branch na nagsasabing Kumusta(sangay sa pag-unlad)
22b4bf9 C00: Nagdagdag ng hello_world.py(master branch)

Ipagpalagay na nais naming ihambing ang hello_world.py para sa C01 at C02 commits. Maaari mong gamitin ang mga hash upang ihambing:

$git diffee60eac: hello_world.py 3f611a0: hello_world.py

naiiba --gosa/ee60eac: hello_world.py b/3f611a0: hello_world.py
index e27f806..72a178d100644
---sa/ee60eac: hello_world.py
+++ b/3f611a0: hello_world.py
@@-2,7+2,7 @@

def pangunahing():
mag-print('Una Kumusta!')
- i-print('Pangalawa Kumusta!')
+ print('Ang sangay ng pagpapaunlad ay nagsabi ng Kamusta')

kung__name__ =='__main__':
pangunahing()

Maaari mong gamitin ang parehong prinsipyo upang ihambing ang mga komit sa loob ng parehong sangay din.


Mga Kasangkapan sa Pagsasama ng Visual

Ang pagtingin sa mga paghahambing na batay sa teksto ay maaaring maging mahirap. Kung na-set up mo ang Git difftool na may isang visual na pagsasama ng application tulad ng DiffMerge o BeyondCompare , mas makakakita ka ng mga pagkakaiba.

Karagdagang Pag-aaral:

Mga Sanggunian: