దాదాపు అన్ని వెర్షన్ కంట్రోల్ సిస్టమ్లలో బ్రాంచింగ్ ఎంపికలు ఉన్నాయి. కానీ Git దాని వేగవంతమైన శాఖల సామర్థ్యాలకు ప్రసిద్ధి చెందింది. Git శాఖలు తేలికగా ఉంటాయి. కాబట్టి శాఖల నిర్వహణకు జరిమానాలు తక్కువగా ఉంటాయి మరియు వీలైనంత వరకు శాఖలు మరియు విలీనానికి అభివృద్ధి బృందాలు ప్రోత్సహించబడతాయి. కానీ మీరు బహుళ శాఖలతో పని చేస్తున్నప్పుడు, వ్యత్యాసాలను సరిపోల్చడం మరియు వ్యత్యాసం చేయడం చాలా ముఖ్యం. ఈ ట్యుటోరియల్లో, మేము వివిధ శాఖలు మరియు కట్టుబాట్లను ఎలా సరిపోల్చవచ్చో చూడటానికి వర్క్ఫ్లో ద్వారా వెళ్తాము. ముందుగా కింది పరిస్థితిని ఏర్పాటు చేద్దాం:
C00 => C01 => C03 => C06 (మాస్టర్)
C02 => C04 => C05 (అభివృద్ధి)
కింది చర్యలు తీసుకోబడ్డాయి:
- C00: hello_world.py (మాస్టర్ బ్రాంచ్) జోడించబడింది
- - అభివృద్ధి శాఖను రూపొందించారు
- C01: రెండవ హలో (మాస్టర్ బ్రాంచ్) జోడించడానికి hello_world.py సవరించబడింది
- C02: అభివృద్ధి శాఖను జోడించడానికి hello_world.py సవరించబడింది హలో (అభివృద్ధి శాఖ)
- C03: readme.txt జోడించబడింది (మాస్టర్ బ్రాంచ్)
- C04: అభివృద్ధి శాఖను జోడించడానికి సవరించిన hello_world.py మళ్లీ హలో (అభివృద్ధి శాఖ)
- C05: info.txt జోడించబడింది (అభివృద్ధి శాఖ)
- C06: రెండవ పంక్తిని జోడించడానికి readme.txt సవరించబడింది (మాస్టర్ బ్రాంచ్)
అన్ని కట్టుబాట్ల తర్వాత, 'మాస్టర్' శాఖలో కింది ఫైళ్లు ఉన్నాయి:
హలో_ప్రపంచం
readme.txt
మరియు 'డెవలప్మెంట్' శాఖలో కింది ఫైళ్లు ఉన్నాయి:
హలో_ప్రపంచం
info.txt
రెండు శాఖల అధిపతులను పోల్చడం
రెండు శాఖల తలలను పోల్చడానికి మీరు శాఖల పేరును ఉపయోగించవచ్చు:
$git తేడామాస్టర్..అభివృద్ధివ్యత్యాసం --వెళ్ళండికు/హలో_ప్రపంచం. బి. బి/హలో_ప్రపంచం
ఇండెక్స్ e27f806..3899ed3100644
---కు/హలో_ప్రపంచం
+++ బి/హలో_ప్రపంచం
@@-2,7+2,7 @@
డెఫ్ మెయిన్():
ముద్రణ('ఫస్ట్ హలో!')
- ముద్రణ('రెండో హలో!')
-
+ ప్రింట్('అభివృద్ధి శాఖ హలో చెప్పింది')
+ ప్రింట్('అభివృద్ధి శాఖ మళ్లీ హలో చెప్పింది')
ఉంటే__ పేరు__ =='__ మెయిన్__':
ప్రధాన()
వ్యత్యాసం --వెళ్ళండికు/info.txt b/info.txt
కొత్తఫైల్మోడ్100644
ఇండెక్స్ 0000000..0ab52fd
--- /దేవ్/శూన్య
+++ బి/info.txt
@@-0,0+1 @@
+కొత్త సమాచారం
వ్యత్యాసం --వెళ్ళండికు/readme.txt b/readme.txt
తొలగించబడిందిఫైల్మోడ్100644
ఇండెక్స్ e29c296..0000000
---కు/readme.txt
+++/దేవ్/శూన్య
@@-1,2+0,0 @@
-1Readme.txt యొక్క మొదటి లైన్
-2Readme.txt యొక్క రెండవ లైన్
డిఫ్ కమాండ్ మార్పులను పునరావృతంగా చూస్తోంది. ఇది క్రింది తేడాలను అమలు చేసింది:
వ్యత్యాసం - a/hello_world.py b/hello_world.py
తేడా –git a/info.txt b/info.txt
తేడా –git a/readme.txt b/readme.txt
ఇక్కడ ‘a’ అంటే ‘మాస్టర్’ శాఖ మరియు ‘b’ అంటే అభివృద్ధి శాఖ. 'A' ఎల్లప్పుడూ మొదటి పరామితికి మరియు 'b' రెండవ పరామితికి కేటాయించబడుతుంది. /Dev /null అంటే శాఖకు ఫైల్ లేదు.
కట్టుబాట్ల మధ్య పోలిక
మా ఉదాహరణలో, 'మాస్టర్' శాఖ కింది కట్టుబాట్లను కలిగి ఉంది:
$git స్థితిబ్రాంచ్ మాస్టర్ మీద
కట్టుబడి ఏమీ లేదు, డైరెక్టరీ శుభ్రంగా పని చేస్తుంది
$git లాగ్ --ఒక్క గీత
caa0ddd C06: రెండవ పంక్తిని జోడించడానికి readme.txt సవరించబడింది(మాస్టర్ శాఖ)
efaba94 C03: readme.txt జోడించబడింది(మాస్టర్ శాఖ)
ee60eac C01: రెండవ హలో జోడించడానికి hello_world.py సవరించబడింది(మాస్టర్ శాఖ)
22b4bf9 C00: hello_world.py జోడించబడింది(మాస్టర్ శాఖ)
అభివృద్ధి శాఖ కింది కట్టుబాట్లను కలిగి ఉంది:
$git స్థితిశాఖ అభివృద్ధిపై
కట్టుబడి ఏమీ లేదు, డైరెక్టరీ శుభ్రంగా పని చేస్తుంది
$git లాగ్ --ఒక్క గీత
df3a4ee C05: info.txt జోడించబడింది(అభివృద్ధి శాఖ)
0f0abb8 C04: అభివృద్ధి శాఖను జోడించడానికి hello_world.py సవరించబడింది(అభివృద్ధి శాఖ)
3f611a0 C02: అభివృద్ధి శాఖను జోడించడానికి hello_world.py సవరించబడింది హలో(అభివృద్ధి శాఖ)
22b4bf9 C00: hello_world.py జోడించబడింది(మాస్టర్ శాఖ)
మేము C01 మరియు C02 కమిట్ల కోసం hello_world.py ని పోల్చాలనుకుంటున్నాము. పోల్చడానికి మీరు హాష్లను ఉపయోగించవచ్చు:
$git తేడాee60eac: hello_world.py 3f611a0: hello_world.pyవ్యత్యాసం --వెళ్ళండికు/ee60eac: hello_world.py బి/3f611a0: హలో_ప్రపంచం
ఇండెక్స్ e27f806..72a178d100644
---కు/ee60eac: hello_world.py
+++ బి/3f611a0: హలో_ప్రపంచం
@@-2,7+2,7 @@
డెఫ్ మెయిన్():
ముద్రణ('ఫస్ట్ హలో!')
- ముద్రణ('రెండో హలో!')
+ ప్రింట్('అభివృద్ధి శాఖ హలో చెప్పింది')
ఉంటే__ పేరు__ =='__ మెయిన్__':
ప్రధాన()
అదే బ్రాంచ్లోని కమిట్లను పోల్చడానికి మీరు అదే సూత్రాన్ని ఉపయోగించవచ్చు.
విజువల్ విలీన సాధనాలు
టెక్స్ట్ ఆధారిత పోలికలను చూడటం కష్టంగా ఉంటుంది. మీరు Git ని సెటప్ చేస్తే తేడా వంటి విజువల్ విలీన అప్లికేషన్తో DiffMerge లేదా మించిపోండి , మీరు తేడాలను బాగా చూడగలుగుతారు.
తదుపరి అధ్యయనం:
- Git తేడా డాక్యుమెంటేషన్
- Git DiffTool డాక్యుమెంటేషన్
- DiffTool తో DiffMerge సెటప్
- బియాండ్కాఫ్ సెటప్ను డిఫ్టూల్తో సరిపోల్చండి
ప్రస్తావనలు:
- Git ట్యుటోరియల్: తేడా మరియు విలీన సాధనాలు , యూట్యూబ్
- http://coding4streetcred.com/blog/post/configure-diffmerge-for-your-git-difftool
- http://gitbaby.com/how-to-diff-one-file-to-an-arbitrary-version-in-git.html
- https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
- https://git-scm.com/book/id/v2/Git-Branching-Branches-in-a-Nutshell
- https://git-scm.com/docs/git-diff
- https://git-scm.com/docs/git-difftool
- https://sourcegear.com/diffmerge/
- https://sourcegear.com/diffmerge/webhelp/sec__git__linux.html
- https://stackoverflow.com/questions/9834689/comparing-two-branches-in-git
- https://veerasundar.com/blog/2011/06/git-tutorial-comparing-files-with-diff/
- https://www.scootersoftware.com/features.php
- https://www.scootersoftware.com/support.php?zz=kb_vcs