“మీరు ఎప్పుడైనా ఒక శాఖను కోల్పోయారా, దీని సోర్స్ కోడ్ ఇంకా‘ విడుదల ’శాఖలో లేదా‘ ప్రధాన ’శాఖలో విలీనం కాలేదు? తొలగించబడిన శాఖను దాని పునరుత్పత్తి చేయాలనుకుంటే, దాని పని ఇప్పటికే ప్రధాన శాఖలో విలీనం చేయబడింది. ” . సరే, అటువంటి దృశ్యాలకు ఏకైక పరిష్కారం రిఫ్లాగ్ వెళ్ళండి .
Git Reflog పై ఈ వ్యాసం ద్వారా, నేను మీకు సహాయం చేస్తానుఒక శాఖపై మీ పని పోగొట్టుకునే దృశ్యాలు మరియు శాఖను ఎలా తిరిగి పొందాలో అర్థం చేసుకోండి.అలాగే, ఈ వ్యాసం ఒక పెద్ద ప్రాజెక్టులో పనిచేసేటప్పుడు ఒక శాఖ యొక్క అనాలోచిత నష్టాన్ని నివారించడానికి మీరు తీసుకోగల విధానాన్ని హైలైట్ చేస్తుంది.
కాబట్టి, ఈ వ్యాసంతో ప్రారంభిద్దాం.
ఒక దృష్టాంతాన్ని పరిగణించండి, ఒక mవివిధ సహకారుల నుండి అనేక ఫీచర్ శాఖలను విలీనం చేసి, చివరికి వాటిని తొలగించాలి, కాని పని విలీనం కావడానికి ముందే ఆ శాఖ అనుకోకుండా తొలగించబడుతుంది?
సరే, నేను ఈ వ్యాసంపై వెళ్ళే ముందు, అది Git లో సాధ్యం కాదని మీకు చెప్తాను. సురక్షితంగా ఉంటాయి మరియు చెక్ పోస్ట్ వలె పనిచేయడం మిమ్మల్ని అలా అనుమతించదు. కాబట్టి, ఇక్కడ Git Reflog చిత్రంలోకి వస్తుంది.
Git Reflog అంటే ఏమిటి?
ది‘రిఫ్లాగ్’ ఆదేశం a ట్రాక్ సూచనలలో చేసిన ప్రతి మార్పు (శాఖలు లేదా ట్యాగ్లు) రిపోజిటరీ మరియు స్థానికంగా సృష్టించబడిన లేదా తనిఖీ చేయబడిన శాఖలు మరియు ట్యాగ్ల యొక్క లాగ్ చరిత్రను ఉంచుతుంది. శాఖ సృష్టించబడినప్పుడు లేదా క్లోన్ చేయబడినప్పుడు, చెక్-అవుట్ చేసినప్పుడు, పేరు మార్చబడినప్పుడు లేదా శాఖపై చేసిన ఏవైనా కమిట్ల యొక్క కమిట్ స్నాప్షాట్ వంటి రిఫరెన్స్ లాగ్లు నిర్వహించబడతాయి మరియు ‘reflog’ ఆదేశం ద్వారా జాబితా చేయబడుతుంది.
గమనిక: మీ స్థానిక రిపోజిటరీలో బ్రాంచ్ ఎప్పుడైనా ఉన్నట్లయితే మాత్రమే బ్రాంచ్ మీ వర్కింగ్ డైరెక్టరీ నుండి తిరిగి పొందబడుతుంది. బ్రాంచ్ స్థానికంగా సృష్టించబడింది లేదా మీ స్థానిక రిపోజిటరీలోని రిమోట్ రిపోజిటరీ నుండి Git దాని రిఫరెన్స్ హిస్టరీ లాగ్లను నిల్వ చేయడానికి తనిఖీ చేయబడింది.
కోల్పోయిన శాఖ ఉన్న రిపోజిటరీలో ఈ ఆదేశాన్ని అమలు చేయాలి. మీరు పరిశీలిస్తేరిమోట్ రిపోజిటరీ పరిస్థితి, అప్పుడు మీరు శాఖను కలిగి ఉన్న డెవలపర్ యొక్క మెషీన్లో రిఫ్లాగ్ ఆదేశాన్ని అమలు చేయాలి.
ఆదేశం: రిఫ్లాగ్ వెళ్ళండి
ఇప్పుడు మీకు తెలుసా, Git Reflog అంటే ఏమిటి, మాకు తెలియజేయండివిలీనం చేయబడిన మరియు విలీనం చేయని శాఖ రెండింటినీ తొలగించడానికి ప్రయత్నించండి మరియు Git దానిని ఎలా నిర్వహిస్తుందో చూడండి?
దశ 1: మాస్టర్లో విలీనం అయిన శాఖలను జాబితా చేయండి
మొదట, ‘ మాస్టర్ మీరు ఆదేశాన్ని ఉపయోగించి వేరే శాఖలో ఉంటే బ్రాంచ్:
$ git చెక్అవుట్ మాస్టర్
అవుట్పుట్
ఇప్పుడు, విలీన శాఖల జాబితాను పొందడానికి, ఈ క్రింది ఆదేశాన్ని పేర్కొనండి:
$ git శాఖ - మునిగిపోయింది
అవుట్పుట్:
దశ 1.1: అప్పుడు, విలీనం చేసిన శాఖను తొలగించండి:
$ git branch -d ఇష్యూ # 902
అవుట్పుట్:
బ్రాంచ్ ‘ఇష్యూ # 902’ ఇప్పటికే ‘మాస్టర్’ బ్రాంచ్లో విలీనం అయినందున విజయవంతంగా తొలగించబడింది.
దశ 2: ఇప్పుడు, మాస్టర్లో విలీనం కాని శాఖలను జాబితా చేద్దాం.
$ git శాఖ - విలీనం కాలేదు
అవుట్పుట్
డేటా సైన్స్కు ఒక సాధారణ పరిచయం
దశ 2.2: చివరగా, కింది ఆదేశంతో విలీనం చేయని శాఖను తొలగిద్దాం:
$ git branch -d prepod
మీరు పూర్తి చేయని పనితో ఒక శాఖను తొలగించడానికి ప్రయత్నిస్తే “ప్రిప్రోడ్” శాఖ అని చెప్పండి, git ఒక హెచ్చరిక సందేశాన్ని ప్రదర్శిస్తుంది.
అవుట్పుట్
ఇప్పుడు, Git Reflog లోని ఈ ఆర్టికల్ డేటాను మీరు ఎలా తిరిగి పొందవచ్చో నేను మీకు చెప్పే ముందు, ఒక శాఖ తొలగించబడినప్పుడు సరిగ్గా ఏమి జరుగుతుందో మరియు ఏ పరిస్థితులలో ఆ శాఖను తిరిగి పొందవచ్చో మీకు చెప్తాను.
ఒక శాఖ ఎలా మరియు ఎప్పుడు తొలగించబడుతుంది?
Git ఒక అని మనకు తెలుసు పంపిణీ వెర్షన్ నియంత్రణ వ్యవస్థ (DVCS), క్లోన్ ఉన్న ప్రతి యంత్రం లేదా రిపోజిటరీ యొక్క కాపీ రెండూ పనిచేస్తాయి నోడ్ మరియు ఒక హబ్ . ఇదిప్రతి యంత్రం మొత్తం రిపోజిటరీ కోడ్ మరియు చరిత్ర యొక్క దాని స్వంత కాపీని కలిగి ఉంటుందని సూచిస్తుంది.మీరు అవుతారని ప్రత్యేకంగా చెప్పనవసరం లేదు భాగస్వామ్యం ఇతరులతో మీ పని మరియు ప్రచురణ అదే.
అందువల్ల, అటువంటి పరిస్థితులలో, ఒక వాస్తవిక ప్రపంచ దృశ్యంలో ఒక శాఖ తొలగించబడినప్పుడు 3 కేసులు ఉండవచ్చు, చాలా మంది సహాయకులు పెద్ద ప్రాజెక్టులో పనిచేస్తున్నారు. కింది సందర్భాలు కావచ్చు:
కేసు 1 - డెవలపర్ శాఖను విలీనం చేయవచ్చు లేదా తొలగించవచ్చు
ఒక డెవలపర్ ఫీచర్ బ్రాంచ్ను స్థానికంగా ప్రధాన బ్రాంచ్లో విలీనం చేసి, ఆపై ఫీచర్ బ్రాంచ్ను తొలగిస్తున్న దృష్టాంతాన్ని పరిగణించండి. git శాఖ ’- తో ఆదేశం d మునుపటి స్క్రీన్షాట్లలో చూసినట్లుగా ఫ్లాగ్ చేయండి.
ఆదేశం: ‘Git branch -d branch_name’
డెవలపర్ బ్రాంచ్లోని మార్పులను చెత్తకుప్ప చేయాలని నిర్ణయించుకుంటాడు మరియు కింది ఆదేశాన్ని ఉపయోగించి ఏ ఇతర శాఖతో విలీనం చేయకుండా బ్రాంచ్ను తొలగించాలని నిర్ణయించుకుంటాడు:
ఆదేశం: ‘Git branch -D branch_name’
పై ఆదేశంతో, డెవలపర్గిట్ హెచ్చరికను అధిగమించే శాఖను బలవంతంగా తొలగించండి
$ git branch -D ప్రిప్రోడ్
అవుట్పుట్
గమనిక : మీరు ‘గిట్ బ్రాంచ్’ ఆదేశాన్ని అమలు చేస్తున్నప్పుడు ‘ప్రిప్రోడ్’ బ్రాంచ్ ఇకపై జాబితా చేయబడదు. కాబట్టి, వైఈ శాఖలో సేవ్ చేసిన మా పని పోతుంది.
కేసు 2 - ఒక డెవలపర్ భాగస్వామ్య రిపోజిటరీలో ఒక శాఖను తొలగిస్తాడు
ఒక దృష్టాంతాన్ని పరిగణించండి, ఇక్కడ చదవడానికి / వ్రాయడానికి ప్రాప్యత ఉన్న డెవలపర్ రిమోట్ బ్రాంచ్ను బలవంతంగా తొలగించడానికి ప్రయత్నిస్తాడు‘- తొలగించు’ ఫ్లాగ్తో ‘git push’ ఆదేశాన్ని ఉపయోగించడం.
it గిట్ పుష్ మూలం - క్విక్ఫిక్స్ తొలగించు
అవుట్పుట్
ఇది కాకుండా, రిమోట్ బ్రాంచ్ను తొలగించడానికి అధికారం లేని లేదా హానికరమైన వినియోగదారు బలవంతం చేసే సందర్భం కూడా ఉండవచ్చు.అటువంటప్పుడు, డెవలపర్ ఉంటేనే తొలగించిన ‘క్విక్ఫిక్స్’ శాఖను మెయింటెనర్ తిరిగి పొందగలుగుతారుగతంలో ఈ శాఖను తనిఖీ చేసింది. ఈ దృష్టాంతంలో, దాని స్థానిక రిపోజిటరీకి ఇప్పటికీ దాని సూచన లాగ్లు ఉంటాయి.
నిర్వహణదారు ఆ శాఖను తిరిగి పొందలేకపోతే, దానిని తొలగించిన బ్రాంచ్ యజమాని అతని / ఆమె స్థానిక రిఫ్లాగ్ల నుండి కోలుకోవాలి.
కేసు 3 - సూపర్ అధికారాలతో కూడిన హుక్ స్క్రిప్ట్ శాఖను తొలగిస్తుంది
ఇది చాలా అరుదుగా ఉంటుంది, అయితే, కొన్ని గిట్ ఆపరేషన్ ఈవెంట్లో హుక్ స్క్రిప్ట్ ప్రేరేపించబడి, ఇంకా విలీనం చేయని శాఖలను బలవంతంగా తొలగిస్తుంది. నువ్వు చేయగలవుసుడో అధికారాలతో హుక్ లిపిలో స్క్రిప్ట్ చేయబడిన పైన పేర్కొన్న ఆదేశాలలో ఒకదాన్ని పరిగణించండి.
ఇప్పుడు, ఏమి జరుగుతుందో మీకు తెలుసు, మీరు ఆ శాఖను తొలగించినప్పుడు, Git Reflog పై ఈ కథనంతో ముందుకు సాగండి మరియు కోల్పోయిన శాఖను ఎలా తిరిగి పొందాలో చూద్దాం.
Git Reflog ఉపయోగించి తొలగించిన శాఖను పునరుద్ధరించండి
దశ 1 : అన్ని సూచనల చరిత్ర లాగ్లు
ఈ రిపోజిటరీలోని అన్ని సూచనలు (‘మాస్టర్’, ‘ఉట్’ మరియు ‘ప్రిపోడ్’) కోసం స్థానికంగా రికార్డ్ చేయబడిన అన్ని చరిత్ర లాగ్ల జాబితాను పొందండి.
రిఫ్లాగ్ వెళ్ళండి
దశ 2 : చరిత్ర స్టాంప్ను గుర్తించండి
పై స్నాప్షాట్ నుండి మీరు సూచించినట్లు, ది హైలైట్ చేసిన కమిట్ ఐడి: e2225bb HEAD పాయింటర్ సూచికతో పాటు: 4 ఒకప్పుడు ‘ పున ale విక్రయం మీ తాజా పనిని సూచించే ప్రస్తుత HEAD పాయింటర్ నుండి ’శాఖ సృష్టించబడింది.
దశ 3 : కోలుకోండి
తిరిగి కోలుకోవడానికి ‘పున ale విక్రయం ‘బ్రాంచ్ కమాండ్ వాడండిఇండెక్స్ ఐడి - 4 తో HEAD పాయింటర్ రిఫరెన్స్ను దాటిన ‘గిట్ చెక్అవుట్’.అవుట్పుట్ స్క్రీన్ షాట్లో హైలైట్ చేసిన లాంగ్ కమిట్ ఐడిని ‘ప్రిప్రోడ్’ బ్రాంచ్ సృష్టించినప్పుడు ఇది పాయింటర్ సూచన.
git checkout -b preprod HEAD @ {4}
అవుట్పుట్
మరియు వోయిలా! ‘ పున ale విక్రయం మీ అన్ని సోర్స్ కోడ్తో ‘బ్రాంచ్ తిరిగి పొందబడుతుంది.
గమనిక : నన్ను బిపైన ఉపయోగించిన ‘git checkout’ ఆదేశాన్ని తిరిగి పొందండి మరియు బాగా అర్థం చేసుకోవడానికి మీకు సహాయపడుతుంది:
‘గిట్ చెక్అవుట్’ కమాండ్ ఓవర్ లోడ్ చేసిన ఆదేశం (ఏదైనా జావా ఓవర్లోడ్ ఫంక్షన్ లాగానే). అసలు శాఖ తిరిగి పొందబడిన భాగం ఇది.
ఈ సింగిల్ కమాండ్ మొదట సూచించిన మునుపటి చరిత్ర టైమ్స్టాంప్ను తనిఖీ చేస్తుంది HEAD {{4} పాయింటర్ ఆపై “-b” ఎంపికను ఉపయోగించి ‘ప్రిప్రోడ్’ పేరుతో ఒక శాఖను సృష్టిస్తుంది, అలాగే మీ వర్కింగ్ డైరెక్టరీని కొత్తగా సృష్టించిన శాఖకు మారుస్తుంది.
అవుట్పుట్ స్క్రీన్లో సూచించిన విధంగా బ్రాంచ్ స్విచ్ ‘మాస్టర్’ నుండి ‘ప్రిప్రోడ్’ వరకు ఉంటుందని ఇది సూచిస్తుంది.మీరు ఇప్పుడు మీ బ్రాంచింగ్ మోడల్ ప్రకారం దీన్ని ‘మాస్టర్’ లేదా ‘విడుదల’ శాఖతో విలీనం చేయవచ్చు.
ఇప్పుడు, ఒక శాఖను ఎలా పునరుద్ధరించాలో మీకు తెలుసు, తొలగించబడిన శాఖ పునరుద్ధరించబడినప్పుడు ఏ పని పునరుద్ధరించబడుతుందో మీకు చెప్తాను.
తొలగించబడిన శాఖను తిరిగి పొందినప్పుడు ఏ పని పునరుద్ధరించబడుతుంది?
స్టాష్ ఇండెక్స్ జాబితాలో నిల్వ చేయబడిన మరియు సేవ్ చేయబడిన ఫైళ్లు తిరిగి పొందబడతాయి. అన్ట్రాక్ చేయబడిన ఏదైనా ఫైల్లు పోతాయి. అలాగే, నేనుమీ పనిని ఎల్లప్పుడూ వేదికగా చేసుకోవడం మరియు కట్టుబడి ఉండటం లేదా వాటిని నిలువరించడం మంచిది.
ఒక నిర్దిష్ట శాఖ యొక్క లాగ్ సూచనలను పొందటానికి లేదా ట్యాగ్ ఆదేశాన్ని అమలు చేయండి - “git reflog”.
ఉదాహరణ: ‘uat’ శాఖ యొక్క లాగ్ సూచనలను తనిఖీ చేయడానికి మాత్రమే “git reflog uat” ఆదేశాన్ని ఉపయోగించండి.
Git Reflog ఉప ఆదేశాలు
రిఫ్లాగ్ వెళ్ళండి
మాన్యువల్ పేజీని తెరవడానికి ఆదేశం
$ git reflog --help
అవుట్పుట్
రిఫ్లాగ్ వెళ్ళండి చూపించు
కమాండ్ లైన్లో అందించిన రిఫరెన్స్ లాగ్లను చూపుతుంది.
git reflog షో మాస్టర్ @ {0}
రిఫ్లాగ్ వెళ్ళండి గడువు
ఈ ఆదేశం పాత రిఫ్లాగ్ ఎంట్రీలను కత్తిరించడానికి ఉపయోగించబడుతుంది.
git reflog గడువు ముగుస్తుంది
రిఫ్లాగ్ వెళ్ళండి తొలగించండి
ఈ ఆదేశం రిఫ్లాగ్ చరిత్ర నుండి ఒకే ఎంట్రీలను తొలగిస్తుంది.
git reflog తొలగించు
రిఫ్లాగ్ వెళ్ళండి ఉంది
ఈ ఆదేశం ref (బ్రాంచ్ లేదా ట్యాగ్) లో రిఫ్లాగ్ - లాగ్ హిస్టరీ ఎంట్రీలను కలిగి ఉందో లేదో తనిఖీ చేస్తుంది.
git reflog ఉంది
పైన పేర్కొన్న ఆదేశాలతో పాటు, “Git Reflog” ఆదేశం వివిధ ఉపకమాండ్లను మరియు పైన పేర్కొన్న ఉపకమాండ్లను బట్టి వివిధ ఎంపికలను తీసుకుంటుంది. మరింత చదవడానికి “ git reflog –help ”టెర్మినల్ విండో నుండి.
దీనితో, మేము Git Reflog లోని ఈ కథనాన్ని ముగించాము.DevOps యొక్క ఉద్దేశ్యం ఏమిటంటే, మంచి-నాణ్యమైన సాఫ్ట్వేర్ను మరింత త్వరగా మరియు మరింత విశ్వసనీయతతో సృష్టించడం, జట్ల మధ్య ఎక్కువ కమ్యూనికేషన్ మరియు సహకారాన్ని ఆహ్వానించడం. మీరు ఈ వ్యాసం ద్వారా ఆసక్తి కలిగి ఉంటే, సి హెక్ అవుట్ ప్రపంచవ్యాప్తంగా విస్తరించి ఉన్న 250,000 మందికి పైగా సంతృప్తికరమైన అభ్యాసకుల నెట్వర్క్తో విశ్వసనీయ ఆన్లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఎడ్యురేకా డెవొప్స్ సర్టిఫికేషన్ ట్రైనింగ్ కోర్సు, డివిఓప్స్ అంటే ఏమిటో అర్థం చేసుకోవడానికి మరియు ఎస్డిఎల్సిలో బహుళ దశలను ఆటోమేట్ చేయడానికి పప్పెట్, జెంకిన్స్, నాగియోస్, అన్సిబుల్, చెఫ్, సాల్ట్స్టాక్ మరియు జిఐటి వంటి వివిధ డెవొప్స్ ప్రాసెస్లు మరియు సాధనాలలో నైపుణ్యాన్ని పొందడానికి అభ్యాసకులకు సహాయపడుతుంది.
మాకు ప్రశ్న ఉందా? దయచేసి దీనిని “Git Reflog” వ్యాసం యొక్క వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము మీ వద్దకు తిరిగి వస్తాము.