పరిచయం
సాఫ్ట్వేర్ డెవలప్మెంట్లో వెర్షన్ కంట్రోల్ సిస్టమ్లకు Git వాస్తవ పరిశ్రమ ప్రమాణంగా మారింది.
Git అంటే ఏమిటి మరియు ఎలా ప్రారంభించాలి అనే దాని గురించి మీరు మొదట నా కథనాన్ని చదవాలి. మీరు చదివారా? అద్భుతమైనది, వెళ్దాం!
![గందరగోళం లేకుండా టీమ్వర్క్: Git - 1లో శాఖల వ్యూహాలను అర్థం చేసుకోవడం]()
నచ్చినా నచ్చకపోయినా, లైనస్ టోవాల్డ్స్ రూపొందించిన ఈ సాధనం రిటైర్ కావడం లేదు. కాబట్టి, పంపిణీ చేయబడిన బృందాలు Gitతో ఎలా పని చేస్తాయి మరియు దీని కోసం వారు ఏ శాఖల వ్యూహాన్ని ఎంచుకోవాలి అనే దాని గురించి మాట్లాడటం అర్ధమే. ఇది అసందర్భ ప్రశ్న కాదు. ఇంతకు ముందు కలిసి పని చేయని కొత్త డెవలప్మెంట్ టీమ్ను అసెంబ్లింగ్ చేసినప్పుడు, బ్రాంచ్ స్ట్రాటజీ అనేది తరచుగా నిర్ణయించే మొదటి విషయాలలో ఒకటి. మరియు కొంతమంది ఒక వ్యూహం కంటే మరొకటి మంచిదని నిరూపించడానికి నోటి నుండి నురగలు కక్కుతున్నారు. కాబట్టి, నేను వారి గురించి కొంత సాధారణ సమాచారాన్ని మీకు తెలియజేయాలనుకుంటున్నాను.
శాఖల వ్యూహాలు అవసరమా?
అవి నిజంగా అవసరం. చాలా అవసరం. ఎందుకంటే బృందం ఏదైనా అంగీకరించకపోతే, ప్రతి జట్టు సభ్యుడు అతను లేదా ఆమె కోరుకున్నది చేస్తారు:
- ఏ శాఖలో పని చేస్తున్నా
- ఏకపక్ష ఇతర శాఖలలో విలీనం
- కొన్ని శాఖలను తొలగిస్తోంది
- కొత్త వాటిని సృష్టిస్తున్నారు
- కాబట్టి ప్రతి జట్టు సభ్యుడు నిర్వహించబడని ప్రవాహంలో పని చేస్తారు.
అందుకే మేము క్రింద పరిగణించవలసిన మూడు వ్యూహాలను కలిగి ఉన్నాము. వెళ్దాం!
GitHub ఫ్లో
![గందరగోళం లేకుండా టీమ్వర్క్: Git - 2లో శాఖల వ్యూహాలను అర్థం చేసుకోవడం]()
ఈ శాఖల వ్యూహం, విచిత్రమేమిటంటే, GitHubలో ప్రాధాన్యత ఇవ్వబడింది :) ఇది
నియమాల సమితితో వస్తుంది :
- మాస్టర్ బ్రాంచ్లోని కోడ్ను విచ్ఛిన్నం చేయకూడదు. ఇది ఏ సమయంలోనైనా అమలు చేయడానికి సిద్ధంగా ఉండాలి. అంటే, మీరు ప్రాజెక్ట్ను నిర్మించకుండా మరియు సర్వర్కు అమలు చేయకుండా నిరోధించే కోడ్ను అక్కడ ఉంచకూడదు.
- మీరు కొత్త ఫంక్షనాలిటీపై పని చేయాలని ప్లాన్ చేసినప్పుడు, మీరు మాస్టర్ బ్రాంచ్ ఆధారంగా కొత్త ఫీచర్ బ్రాంచ్ని సృష్టించాలి మరియు దానికి అర్థవంతమైన పేరు పెట్టాలి. మీ కోడ్ని స్థానికంగా అప్పగించండి మరియు రిమోట్ రిపోజిటరీలోని అదే బ్రాంచ్కి మీ మార్పులను క్రమం తప్పకుండా పుష్ చేయండి.
- పని సిద్ధంగా ఉందని మరియు మాస్టర్ బ్రాంచ్లో విలీనం చేయవచ్చని మీరు భావించినప్పుడు (లేదా మీకు ఖచ్చితంగా తెలియకుంటే, పూర్తి చేసిన పనిపై అభిప్రాయాన్ని పొందాలనుకుంటే) పుల్ అభ్యర్థనను తెరవండి (మీరు పుల్ అభ్యర్థనల గురించి ఇక్కడ చదవవచ్చు).
- పుల్ రిక్వెస్ట్లోని కొత్త ఫీచర్ ఆమోదించబడిన తర్వాత, దానిని మాస్టర్ బ్రాంచ్లో విలీనం చేయవచ్చు.
- మార్పులు మాస్టర్ బ్రాంచ్లో విలీనం చేయబడినప్పుడు, వాటిని వెంటనే సర్వర్కు అమలు చేయాలి.
GitHub ఫ్లో ప్రకారం, మీరు ఏదైనా కొత్త పనిని ప్రారంభించే ముందు, అది పరిష్కారమైనా లేదా కొత్త ఫీచర్ అయినా, మీరు మాస్టర్ ఆధారంగా కొత్త బ్రాంచ్ని సృష్టించి దానికి తగిన పేరు పెట్టాలి. తరువాత, అమలుపై పని ప్రారంభమవుతుంది. మీరు అదే పేరుతో రిమోట్ సర్వర్కు నిరంతరం కమిట్లను సమర్పించాలి. ప్రతిదీ సిద్ధంగా ఉందని మీరు నిర్ధారించినప్పుడు, మీరు మాస్టర్ బ్రాంచ్కు పుల్ అభ్యర్థనను సృష్టించాలి. "ఆమోదించు"ని క్లిక్ చేసే ముందు కనీసం ఒకరు లేదా అంతకంటే మెరుగైన, ఇద్దరు వ్యక్తులు ఈ కోడ్ని చూడాలి. సాధారణంగా, ప్రాజెక్ట్ యొక్క టీమ్ లీడ్ మరియు రెండవ వ్యక్తి ఖచ్చితంగా పరిశీలించాలి. అప్పుడు మీరు పుల్ అభ్యర్థనను పూర్తి చేయవచ్చు. GitHub ఫ్లో ప్రాజెక్ట్లలో
నిరంతర డెలివరీ (CD)ని నడపడానికి కూడా ప్రసిద్ధి చెందింది . ఎందుకంటే మార్పులు మాస్టర్ బ్రాంచ్లోకి వెళ్లినప్పుడు, వాటిని వెంటనే సర్వర్కు అమర్చాలి.
GitFlow
![గందరగోళం లేకుండా టీమ్వర్క్: Git - 3లో శాఖల వ్యూహాలను అర్థం చేసుకోవడం]()
మునుపటి వ్యూహం (GitHub ఫ్లో) దాని ప్రధాన భాగంలో చాలా క్లిష్టంగా లేదు. రెండు రకాల శాఖలు ఉన్నాయి: మాస్టర్ మరియు ఫీచర్ శాఖలు. కానీ GitFlow మరింత తీవ్రమైనది. కనీసం, పైన ఉన్న చిత్రం దానిని స్పష్టం చేయాలి :) కాబట్టి ఈ వ్యూహం ఎలా పని చేస్తుంది? సాధారణంగా, GitFlowలో రెండు నిరంతర శాఖలు మరియు అనేక రకాల తాత్కాలిక శాఖలు ఉంటాయి. GitHub ఫ్లో సందర్భంలో, మాస్టర్ బ్రాంచ్ నిరంతరంగా ఉంటుంది మరియు మిగిలినవి తాత్కాలికంగా ఉంటాయి.
నిరంతర శాఖలు
- మాస్టర్: ఈ శాఖను ఎవరూ ముట్టకూడదు లేదా నెట్టకూడదు. ఈ వ్యూహంలో, మాస్టర్ తాజా స్థిరమైన సంస్కరణను సూచిస్తుంది, ఇది ఉత్పత్తిలో ఉపయోగించబడుతుంది (అంటే, నిజమైన సర్వర్లో)
- అభివృద్ధి: అభివృద్ధి శాఖ. ఇది అస్థిరంగా ఉండవచ్చు.
మూడు సహాయక తాత్కాలిక శాఖలను ఉపయోగించి అభివృద్ధి జరుగుతుంది :
- ఫీచర్ శాఖలు - కొత్త కార్యాచరణను అభివృద్ధి చేయడం కోసం.
- విడుదల శాఖలు - ప్రాజెక్ట్ యొక్క కొత్త వెర్షన్ విడుదల కోసం సిద్ధం చేయడానికి.
- Hotfix శాఖలు - నిజమైన సర్వర్లో నిజమైన వినియోగదారులు కనుగొన్న బగ్ను త్వరగా పరిష్కరించడానికి.
ఫీచర్ శాఖలు
ఫీచర్ బ్రాంచ్లు కొత్త కార్యాచరణ కోసం డెవలపర్లచే సృష్టించబడతాయి. వారు ఎల్లప్పుడూ అభివృద్ధి శాఖ ఆధారంగా సృష్టించబడాలి. కొత్త కార్యాచరణపై పనిని పూర్తి చేసిన తర్వాత, మీరు డెవలప్మెంట్ బ్రాంచ్కి పుల్ అభ్యర్థనను సృష్టించాలి. స్పష్టంగా, పెద్ద బృందాలు ఒకేసారి ఒకటి కంటే ఎక్కువ ఫీచర్ బ్రాంచ్లను కలిగి ఉంటాయి. GitFlow వ్యూహం యొక్క వివరణ ప్రారంభంలో ఉన్న చిత్రాన్ని మరొకసారి చూడండి.
శాఖలను విడుదల చేయండి
డెవలప్మెంట్ బ్రాంచ్లో అవసరమైన కొత్త ఫీచర్ల సెట్ సిద్ధంగా ఉన్నప్పుడు, మీరు ఉత్పత్తి యొక్క కొత్త వెర్షన్ విడుదల కోసం సిద్ధం చేయవచ్చు. డెవలప్మెంట్ బ్రాంచ్ ఆధారంగా రూపొందించబడిన విడుదల శాఖ, దీనికి మాకు సహాయం చేస్తుంది. విడుదల శాఖతో పని చేస్తున్నప్పుడు, మీరు అన్ని దోషాలను కనుగొని పరిష్కరించాలి. విడుదల శాఖను స్థిరీకరించడానికి అవసరమైన ఏవైనా కొత్త మార్పులు తప్పనిసరిగా డెవలప్మెంట్ బ్రాంచ్లో తిరిగి విలీనం చేయబడాలి. అభివృద్ధి శాఖను కూడా స్థిరీకరించడానికి ఇది జరుగుతుంది. కొత్త విడుదల కోసం బ్రాంచ్ స్థిరంగా ఉందని టెస్టర్లు చెప్పినప్పుడు, అది మాస్టర్ బ్రాంచ్లో విలీనం చేయబడింది. తర్వాత ఈ కమిట్ కోసం వెర్షన్ నంబర్ కేటాయించబడిన ట్యాగ్ సృష్టించబడుతుంది. ఒక ఉదాహరణను చూడటానికి, వ్యూహం ప్రారంభంలో ఉన్న చిత్రాన్ని చూడండి.
అక్కడ మీకు ట్యాగ్ 1.0 కనిపిస్తుంది
— ఇది ప్రాజెక్ట్ యొక్క వెర్షన్ 1.0ని సూచించే ట్యాగ్ మాత్రమే. చివరకు, మనకు హాట్ఫిక్స్ బ్రాంచ్ ఉంది.
హాట్ఫిక్స్ శాఖలు
హాట్ఫిక్స్ బ్రాంచ్లు మాస్టర్ బ్రాంచ్కి కొత్త వెర్షన్ను విడుదల చేయడానికి కూడా ఉద్దేశించబడ్డాయి. ఒకే తేడా ఏమిటంటే, ఆ విడుదలలు ప్లాన్ చేయబడలేదు. బగ్లు విడుదలైన సంస్కరణలోకి ప్రవేశించినప్పుడు మరియు ఉత్పత్తి వాతావరణంలో కనుగొనబడినప్పుడు పరిస్థితులు ఉన్నాయి. iOSని తీసుకోండి: కొత్త వెర్షన్ విడుదలైన వెంటనే, విడుదల తర్వాత కనుగొనబడిన బగ్ల పరిష్కారాలతో కూడిన కొన్ని అప్డేట్లను మీరు వెంటనే పొందుతారు. దీని ప్రకారం, మేము త్వరగా బగ్ను పరిష్కరించి, కొత్త సంస్కరణను విడుదల చేయాలి. మా చిత్రంలో, ఇది వెర్షన్ 1.0.1కి అనుగుణంగా ఉంటుంది. ఆలోచన ఏమిటంటే, నిజమైన సర్వర్లో (లేదా మనం చెప్పినట్లు, "ఇన్ ప్రోడ్" లేదా "ప్రొడక్షన్లో") బగ్ను పరిష్కరించాల్సిన అవసరం వచ్చినప్పుడు కొత్త కార్యాచరణపై పని ఆగిపోనవసరం లేదు. హాట్ఫిక్స్ బ్రాంచ్ మాస్టర్ బ్రాంచ్ నుండి సృష్టించబడాలి, ఎందుకంటే ఇది ప్రస్తుతం ఉత్పత్తిలో నడుస్తున్న వాటిని సూచిస్తుంది. బగ్ ఫిక్స్ సిద్ధమైన వెంటనే, అది మాస్టర్లో విలీనం చేయబడింది మరియు కొత్త ట్యాగ్ సృష్టించబడుతుంది. విడుదల శాఖను సిద్ధం చేసినట్లే, హాట్ఫిక్స్ బ్రాంచ్ కూడా దాని పరిష్కారాన్ని తిరిగి డెవలప్మెంట్ బ్రాంచ్లో విలీనం చేయాలి.
ఫోర్కింగ్ వర్క్ఫ్లో
![గందరగోళం లేకుండా టీమ్వర్క్: Git - 4లో శాఖల వ్యూహాలను అర్థం చేసుకోవడం]()
ఫోర్కింగ్ వర్క్ఫ్లో, అభివృద్ధి రెండు రిపోజిటరీలను కలిగి ఉంటుంది:
- అసలైన రిపోజిటరీ, దీనిలో అన్ని మార్పులు విలీనం చేయబడతాయి.
- ఒక ఫోర్క్ రిపోజిటరీ. ఇది ఒరిజినల్ రిపోజిటరీకి సంబంధించిన కాపీ, అసలు దానికి మార్పులు చేయాలనుకునే మరో డెవలపర్ స్వంతం.
ఇప్పటివరకు కొంచెం బేసిగా అనిపిస్తుంది, సరియైనదా? ఇప్పటికే ఓపెన్ సోర్స్ డెవలప్మెంట్ను ఎదుర్కొన్న ఎవరికైనా ఈ విధానం గురించి ఇప్పటికే తెలిసి ఉంటుంది. ఈ వ్యూహం క్రింది ప్రయోజనాన్ని ఇస్తుంది: అసలు శాఖలో ఉమ్మడి అభివృద్ధికి అనుమతులు మంజూరు చేయకుండా ఫోర్క్ రిపోజిటరీలో అభివృద్ధి జరుగుతుంది. సహజంగానే, అసలు రిపోజిటరీ యజమానికి ప్రతిపాదిత మార్పులను తిరస్కరించే హక్కు ఉంది. లేదా వాటిని అంగీకరించి విలీనం చేయండి. ఇది ఒరిజినల్ రిపోజిటరీ యజమానికి మరియు ఉత్పత్తిని రూపొందించడంలో సహాయం చేయాలనుకునే డెవలపర్కు ఇద్దరికీ సౌకర్యవంతంగా ఉంటుంది.
ఉదాహరణకు, మీరు Linux కెర్నల్కు మార్పులను సూచించవచ్చు . లైనస్ అవి అర్థవంతంగా ఉన్నాయని నిర్ణయించుకుంటే, మార్పులు జోడించబడతాయి (!!!).
ఫోర్కింగ్ వర్క్ఫ్లో యొక్క ఉదాహరణ
మీరు ఉపయోగించాలనుకుంటున్న లైబ్రరీ ఉన్నప్పుడు GitHubలో ఫోర్కింగ్ వర్క్ఫ్లో వర్తించబడుతుంది. ఇది పూర్తిగా ఉపయోగించకుండా మిమ్మల్ని నిరోధించే బగ్ని కలిగి ఉంది. మీరు సమస్యలో తగినంత లోతుగా డైవ్ చేసి, పరిష్కారం తెలుసుకున్నారని అనుకుందాం. ఫోర్కింగ్ వర్క్ఫ్లో ఉపయోగించి, మీరు లైబ్రరీ ఒరిజినల్ రిపోజిటరీలో పని చేసే హక్కులు లేకుండానే సమస్యను పరిష్కరించవచ్చు. ప్రారంభించడానికి, మీరు కొంత రిపోజిటరీని ఎంచుకోవాలి, ఉదాహరణకు,
స్ప్రింగ్ ఫ్రేమ్వర్క్ . ఎగువ కుడి మూలలో ఉన్న "ఫోర్క్" బటన్ను కనుగొని క్లిక్ చేయండి:
![గందరగోళం లేకుండా టీమ్వర్క్: Git - 5లో శాఖల వ్యూహాలను అర్థం చేసుకోవడం]()
దీనికి కొంత సమయం పడుతుంది. అప్పుడు అసలు రిపోజిటరీ యొక్క కాపీ మీ వ్యక్తిగత ఖాతాలో కనిపిస్తుంది, ఇది ఫోర్క్ అని సూచిస్తుంది:
![గందరగోళం లేకుండా టీమ్వర్క్: Git - 6లో శాఖల వ్యూహాలను అర్థం చేసుకోవడం]()
ఇప్పుడు మీరు ఈ రిపోజిటరీతో ఎప్పటిలాగే పని చేయవచ్చు, మాస్టర్ బ్రాంచ్కు మార్పులను జోడించి, ప్రతిదీ సిద్ధంగా ఉన్నప్పుడు, మీరు అసలు రిపోజిటరీకి పుల్ అభ్యర్థనను సృష్టించవచ్చు. దీన్ని చేయడానికి,
కొత్త పుల్ అభ్యర్థన బటన్ను క్లిక్ చేయండి:
ఏ వ్యూహాన్ని ఎంచుకోవాలి
Git అనేది అనేక రకాల ప్రక్రియలు మరియు వ్యూహాలను ఉపయోగించి పని చేయడానికి మిమ్మల్ని అనుమతించే సౌకర్యవంతమైన మరియు శక్తివంతమైన సాధనం. కానీ మీకు ఎక్కువ ఎంపికలు ఉంటే, ఏ వ్యూహాన్ని ఎంచుకోవాలో నిర్ణయించుకోవడం మరింత కష్టం. అందరికీ ఒకే సమాధానం ఉండదని స్పష్టమైంది. ప్రతిదీ పరిస్థితిపై ఆధారపడి ఉంటుంది. దీనికి సహాయపడే అనేక మార్గదర్శకాలు ఉన్నాయి:
- మొదట సరళమైన వ్యూహాన్ని ఎంచుకోవడం మంచిది. అవసరమైనప్పుడు మాత్రమే మరింత క్లిష్టమైన వ్యూహాలకు వెళ్లండి.
- డెవలపర్ల కోసం వీలైనంత తక్కువ శాఖల రకాలను కలిగి ఉన్న వ్యూహాలను పరిగణించండి.
- వివిధ వ్యూహాల యొక్క లాభాలు మరియు నష్టాలను చూడండి, ఆపై మీ ప్రాజెక్ట్ కోసం మీకు అవసరమైనదాన్ని ఎంచుకోండి.
Gitలో శాఖల వ్యూహాల గురించి నేను చెప్పదలుచుకున్నాను అంతే. మీ దృష్టికి ధన్యవాదాలు :)
GitHubలో నన్ను అనుసరించండి , అక్కడ నేను నా పనిలో ఉపయోగించే విభిన్న సాంకేతికతలు మరియు సాధనాలతో కూడిన నా సృష్టిని తరచుగా పోస్ట్ చేస్తాను.
GO TO FULL VERSION