Gitలో అధునాతన భావనలు: శక్తివంతమైన ఫీచర్‌లు మరియు సాంకేతికతలను అన్వేషించడం

Rebasing

కమిట్ హిస్టరీని సవరించడం ద్వారా ఒక బ్రాంచ్ నుండి మరో బ్రాంచ్‌లో మార్పులను పొందుపరచడానికి రీబేసింగ్ మిమ్మల్ని అనుమతిస్తుంది. ఇది సోర్స్ బ్రాంచ్ నుండి టార్గెట్ బ్రాంచ్‌కి కమిట్‌లను రీప్లే చేస్తుంది. ఇది క్లీనర్ మరియు మరింత లీనియర్ కమిట్ హిస్టరీని కలిగిస్తుంది.

ఉదాహరణ: మీరు ఒక ఫీచర్ బ్రాంచ్‌ని కలిగి ఉన్నారని అనుకుందాం feature-branch మరియు మీరు బ్రాంచ్ నుండి తాజా మార్పులను పొందుపరచాలనుకుంటున్నారు main. మీరు కింది ఆదేశాన్ని ఉపయోగించవచ్చు:

git checkout feature-branch  
git rebase main  

main ఇది శాఖ నుండి కమిట్‌లను వర్తింపజేస్తుంది feature-branch. ఏదైనా వైరుధ్యాలు రీబేస్ ప్రక్రియలో పరిష్కరించబడాలి.

 

Stashing

స్టాషింగ్ మీ ప్రస్తుత మార్పులను సేవ్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, అవి కట్టుబడి ఉండటానికి సిద్ధంగా లేవు మరియు తాత్కాలికంగా క్లీన్ వర్కింగ్ డైరెక్టరీకి తిరిగి వెళ్లండి. మీరు వేరొక బ్రాంచ్‌కి మారవలసి వచ్చినప్పుడు లేదా మీరు ప్రస్తుతం పని చేస్తున్న మార్పులను చేయకుండా వేరే ఫీచర్‌పై పని చేయాల్సి వచ్చినప్పుడు ఇది ఉపయోగకరంగా ఉంటుంది.

ఉదాహరణ: మీరు ఫీచర్ బ్రాంచ్‌లో పని చేస్తున్నారని మరియు మీరు కొన్ని మార్పులు చేసారని అనుకుందాం, కానీ మీరు మరొక శాఖకు మారాలి. మీ మార్పులను దాచడానికి మీరు క్రింది ఆదేశాలను ఉపయోగించవచ్చు:

git stash

కొత్త బ్రాంచ్‌కి మారిన తర్వాత, మీరు వీటిని ఉపయోగించి స్టాష్ చేసిన మార్పులను వర్తింపజేయవచ్చు:

git stash apply

 

Git Hooks

Git Hooks ప్రీ-కమిట్, పోస్ట్-కమిట్, ప్రీ-పుష్ మొదలైన నిర్దిష్ట Git ఈవెంట్‌ల ద్వారా ప్రేరేపించబడిన స్క్రిప్ట్‌లు. అవి కొన్ని చర్యలను ఆటోమేట్ చేయడానికి లేదా మీ వర్క్‌ఫ్లోలో నిర్దిష్ట నియమాలను అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తాయి.

ఉదాహరణ: మీరు కమిట్ అయ్యే ముందు మీ కోడ్‌లో లిన్టర్‌ను అమలు చేయాలనుకుంటున్నారని అనుకుందాం. మీరు ప్రీ-కమిట్ హుక్ స్క్రిప్ట్‌ను సృష్టించవచ్చు, అది లైంటర్‌ను ట్రిగ్గర్ చేస్తుంది మరియు ఏదైనా లైంటింగ్ లోపాలు ఉంటే కమిట్‌ను నిరోధిస్తుంది.

 

Git Submodule

Git Submodule మీ ప్రధాన రిపోజిటరీలో మరొక Git రిపోజిటరీని సబ్ డైరెక్టరీగా చేర్చడానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు బాహ్య లైబ్రరీలు లేదా భాగాలపై ఆధారపడే ప్రాజెక్ట్‌ను కలిగి ఉన్నప్పుడు ఇది ఉపయోగకరంగా ఉంటుంది.

ఉదాహరణ: మీకు నిర్దిష్ట లైబ్రరీ అవసరమయ్యే ప్రాజెక్ట్ ఉంది. మీ రిపోజిటరీలో లైబ్రరీ కోడ్‌ని నకిలీ చేయడానికి బదులుగా, మీరు దానిని సబ్‌మాడ్యూల్‌గా జోడించవచ్చు. ఈ విధంగా, మీరు లైబ్రరీ కోడ్‌ను ప్రత్యేకంగా ఉంచవచ్చు మరియు అవసరమైనప్పుడు సులభంగా నవీకరించవచ్చు.

 

Git Revert and Git Reset

Git Revert అసలు కమిట్‌లో చేసిన మార్పులను రద్దు చేసే కొత్త నిబద్ధతను సృష్టించడం ద్వారా మునుపటి నిబద్ధతను రద్దు చేస్తుంది. Git Reset మరోవైపు, మీరు బ్రాంచ్ పాయింటర్‌ను వేరే కమిట్‌కి తరలించడానికి అనుమతిస్తుంది, కమిట్ హిస్టరీ నుండి కమిట్‌లను ప్రభావవంతంగా విస్మరిస్తుంది.

ఉదాహరణ: మీరు చివరి కమిట్‌ను రద్దు చేయాలనుకుంటే, git revert HEAD చివరి కమిట్‌లో చేసిన మార్పులను రద్దు చేసే కొత్త కమిట్‌ని సృష్టించడానికి మీరు ఉపయోగించవచ్చు. మీరు చివరి కమిట్‌ను పూర్తిగా విస్మరించాలనుకుంటే, మీరు git reset HEAD~1 బ్రాంచ్ పాయింటర్‌ను ఒక కమిట్‌తో వెనక్కి తరలించడానికి ఉపయోగించవచ్చు.

 

Gitలోని ఈ అధునాతన భావనలు మీ రిపోజిటరీని సమర్థవంతంగా నిర్వహించడానికి శక్తివంతమైన సామర్థ్యాలను అందిస్తాయి. వాటిని ఎలా ఉపయోగించాలో మరియు వాటిని ఎప్పుడు వర్తింపజేయాలో అర్థం చేసుకోవడం మీ Git వర్క్‌ఫ్లో మరియు ప్రాజెక్ట్ మేనేజ్‌మెంట్‌ను బాగా మెరుగుపరుస్తుంది.