Git கமிட் மாற்றங்களைப் புரிந்துகொள்வது
திட்ட வரலாற்றை மாற்றாமல் முந்தைய மாற்றங்களைச் செயல்தவிர்க்க வேண்டியிருக்கும் போது, Git களஞ்சியத்தில் பல கமிட்களை மாற்றுவது பொதுவான பணியாகும். உங்கள் கடந்தகால வேலையின் நேர்மையைப் பாதுகாக்கும் அதே வேளையில் மாற்றங்களைத் திரும்பப் பெற இது ஒரு பாதுகாப்பான முறையாகும். உங்கள் மாற்றங்களை மற்றவர்களுடன் பகிர்ந்து கொள்ளும்போது இந்த அணுகுமுறை மிகவும் பயனுள்ளதாக இருக்கும் மற்றும் மறுசீரமைப்பு இனி சாத்தியமான விருப்பமாக இருக்காது.
நீங்கள் தொடர்ச்சியான கமிட்களை மாற்றியமைக்க வேண்டியிருக்கும் போது சவால் எழுகிறது - கமிட் D இல் உள்ள ஒரு தலையிலிருந்து A க்கு திரும்புவது, B, C மற்றும் D கமிட்களை திறம்பட புறக்கணிப்பது போன்றது. சுத்தமான மற்றும் செயல்பாட்டு களஞ்சியம்.
கட்டளை | விளக்கம் |
---|---|
git reset --hard A | தற்போதைய கிளையின் HEAD ஐ குறிப்பிட்ட கமிட்டிற்கு மீட்டமைக்கிறது (இந்த விஷயத்தில் A), அந்த உறுதிப்பாட்டிலிருந்து செயல்படும் அடைவு மற்றும் குறியீட்டில் உள்ள அனைத்து மாற்றங்களையும் நிராகரிக்கிறது. |
git push --force | ரிமோட் ரிபோசிட்டரிக்கு அழுத்தத்தை கட்டாயப்படுத்துகிறது, ரிமோட்டில் மாற்றங்களை தற்போதைய கிளை நிலையுடன் மேலெழுதும். மாற்றங்கள் முன்பு தள்ளப்பட்டிருந்தால், கடின மீட்டமைப்பிற்குப் பிறகு இது அவசியம். |
git revert <commit> --no-commit | குறிப்பிட்ட கமிட் மூலம் அறிமுகப்படுத்தப்பட்ட மாற்றங்களை மாற்றியமைக்காமல் மாற்றியமைக்கிறது. இது பல மாற்றங்களை ஒரே உறுதிப்பாட்டில் தொகுக்க அனுமதிக்கிறது. |
git commit -m "Message" | தற்போதைய நிலைப் பகுதி உள்ளடக்கங்களை, வழங்கப்பட்ட செய்தியுடன் களஞ்சியத்தில் ஒப்படைத்து, மாற்றியமைக்கும் அல்லது மீட்டமைக்கும் செயல்முறையை இறுதி செய்கிறது. |
Git கட்டளை ஸ்கிரிப்ட்களின் விளக்கம்
வழங்கப்பட்ட ஸ்கிரிப்டுகள், கிளையை முந்தைய நிலைக்கு மீட்டமைப்பதன் மூலம் அல்லது கமிட்களைத் தேர்ந்தெடுத்து மாற்றுவதன் மூலம், Git களஞ்சியத்தில் மாற்றங்களை நிர்வகிக்கவும் மாற்றியமைக்கவும் வடிவமைக்கப்பட்டுள்ளன. தி 'A' என அடையாளம் காணப்பட்ட முந்தைய உறுதிப்பாட்டிற்கு கிளையின் தலையை நேரடியாக மறுவரையறை செய்வதால் கட்டளை முக்கியமானது. இந்தச் செயல், கமிட் A க்குப் பிறகு கிளையில் செய்யப்பட்ட அனைத்து மாற்றங்களையும் நிராகரிக்கிறது, திறம்பட களஞ்சிய நிலையை கமிட் A இல் உள்ளதை ஒத்ததாக ஆக்குகிறது. இந்தக் கட்டளை சக்தி வாய்ந்தது ஆனால் எச்சரிக்கையுடன் பயன்படுத்தப்பட வேண்டும், ஏனெனில் இது மாற்றங்களை நிரந்தரமாக அழித்துவிடும், உங்களுக்கு சுத்தமான மறுபரிசீலனை தேவைப்படும்போது இது பொருத்தமானது. தெரிந்த நல்ல நிலைக்கு.
தி கட்டளைகள், உடன் இணைந்து விருப்பம், நீங்கள் B, C, மற்றும் D ஆகிய கமிட்களால் அறிமுகப்படுத்தப்பட்ட குறிப்பிட்ட மாற்றங்களை செயல்தவிர்க்க விரும்பும்போது பயன்படுத்தப்படும், ஆனால் செயல்தவிர்க்கப்பட்டது பற்றிய பதிவை வைத்திருக்க வேண்டும். இந்த முறை வரலாற்றைப் பராமரிக்கிறது, இது மாற்றங்களின் பரிணாமத்தைப் புரிந்துகொள்வது முக்கியமாக இருக்கும் பகிரப்பட்ட களஞ்சியங்களுக்கு நன்மை பயக்கும். தேவையான கமிட்களை மாற்றிய பின், ஒரு ஒற்றை அனைத்து மாற்றங்களையும் ஒரு ஸ்னாப்ஷாட்டில் தொகுக்கப் பயன்படுகிறது, இது திட்ட வரலாற்றை எளிதாக்குகிறது மற்றும் மாற்றியமைப்பின் சூழலைப் புரிந்துகொள்வதை எளிதாக்குகிறது. பயன்பாடு git push --force கிளையின் வரலாற்றில் இத்தகைய கடுமையான மாற்றங்களுக்குப் பிறகு ரிமோட் களஞ்சியத்தை புதுப்பிக்க வேண்டியது அவசியம்.
Git கிளையை ஒரு குறிப்பிட்ட உறுதிக்கு மீட்டமைத்தல்
Git கட்டளை வரியைப் பயன்படுத்துதல்
git checkout your-branch-name
git reset --hard A
git push origin your-branch-name --force
Git இல் பல மாற்றங்களை மாற்றுகிறது
Git செயல்பாடுகளுக்கான பாஷுடன் ஸ்கிரிப்டிங்
git checkout your-branch-name
git revert D --no-commit
git revert C --no-commit
git revert B --no-commit
git commit -m "Reverted commits B, C, and D"
git push origin your-branch-name
Git வரலாறுகளை நிர்வகிப்பதற்கான மேம்பட்ட நுட்பங்கள்
ஒரு Git களஞ்சியத்தை கையாளும் போது, மேம்பட்ட பயனர்களுக்கு பெரும்பாலும் அடிப்படை பொறுப்பு மாற்றங்கள் அல்லது மீட்டமைப்புகளை விட அதிகமாக தேவைப்படும். அத்தகைய ஒரு நுட்பம், மேலும் கட்டுப்படுத்தப்பட்ட வரலாறு திருத்துவதற்கு ஊடாடும் மறுதளத்தைப் பயன்படுத்துவதாகும். மறுசீரமைப்பு அமர்வின் போது விரிவான பட்டியலிலிருந்து கமிட்களை எடுக்க, ஸ்குவாஷ் செய்ய, திருத்த அல்லது தவிர்க்க இண்டராக்டிவ் ரீபேஸ் உங்களை அனுமதிக்கிறது, இது கமிட் வரலாற்றின் மீது சிறந்த கட்டுப்பாட்டை வழங்குகிறது. சிக்கலான வரலாறுகளை ஒரு முக்கிய கிளையாக இணைக்கும் முன், திட்டத்தின் வரலாறு சுத்தமாகவும் புரிந்துகொள்ளக்கூடியதாகவும் இருப்பதை உறுதிசெய்யும் போது இந்த முறை மிகவும் பயனுள்ளதாக இருக்கும்.
மற்றொரு மேம்பட்ட முறையானது reflog ஐப் பயன்படுத்துவதாகும், இது Git இல் உள்ள ஒரு பொறிமுறையாகும், இது கிளைகளின் குறிப்புகள் மற்றும் களஞ்சியத்தில் உள்ள பிற குறிப்புகளுக்கான புதுப்பிப்புகளைப் பதிவு செய்கிறது. ஆக்கிரோஷமான சுத்தம் அல்லது வரலாற்றைக் கையாளும் பிழைகள் காரணமாக கிளை உதவிக்குறிப்புகள் மூலம் நேரடியாக அணுக முடியாத திட்டத்தின் முந்தைய நிலைகளை நீங்கள் மறுபரிசீலனை செய்து மீட்டெடுக்க வேண்டிய மீட்புக் காட்சிகளுக்கு reflog மதிப்புமிக்கதாக இருக்கும்.
- என்ன செய்கிறது செய்ய கட்டளையிடவா?
- இது தற்போதைய கிளையின் தலையை குறிப்பிட்ட உறுதிக்கு மீட்டமைக்கிறது, அந்த உறுதிப்பாட்டிலிருந்து ஸ்டேஜிங் ஏரியா மற்றும் வேலை செய்யும் கோப்பகத்தில் உள்ள அனைத்து மாற்றங்களையும் நிராகரிக்கிறது.
- ஒன்றிணைக்கும் உறுதிமொழியை நான் திரும்பப்பெற முடியுமா?
- ஆம், நீங்கள் ஒரு இணைப்பு உறுதியை குறிப்பாகப் பயன்படுத்தி மாற்றியமைக்கலாம் , "1" என்பது இணைப்பதற்கான பெற்றோரின் உறுதிப்பாட்டைக் குறிப்பிடுகிறது.
- பங்கு என்ன ?
- reflog ஆனது கிளைகளின் குறிப்புகள் மற்றும் களஞ்சியத்தில் உள்ள பிற குறிப்புகளில் ஏற்படும் மாற்றங்களைக் கண்காணிக்கப் பயன்படுகிறது, இழந்த கமிட்களை மீட்டெடுக்க அல்லது ரெப்போவில் செய்யப்பட்ட மாற்றங்களை ஆராய உதவுகிறது.
- எப்படி செய்கிறது இணைப்பதில் இருந்து வேறுபட்டதா?
- ரீபேஸ் ஒரு கிளையின் அடிப்பகுதியை புதிய உறுதிப்பாட்டிற்கு மாற்றுவதன் மூலம் திட்ட வரலாற்றை மீண்டும் எழுதுகிறது, இது ஒன்றிணைப்புடன் ஒப்பிடும்போது வரலாற்றை தூய்மையாக்கும்.
- ஒரு கிளையை மீட்டமைத்த பிறகு கட்டாயப்படுத்தி தள்ளுவது பாதுகாப்பானதா?
- மாற்றங்கள் ஏற்கனவே தள்ளப்பட்டிருந்தால், அதை மீட்டமைத்த பிறகு வலுக்கட்டாயமாக தள்ளுவது அவசியம், ஆனால் இது தொலைநிலை மாற்றங்களை மேலெழுதலாம் மற்றும் எச்சரிக்கையுடன் பயன்படுத்தப்பட வேண்டும்.
ஒரு Git களஞ்சியத்தை வெற்றிகரமாக நிர்வகித்தல், பல கமிட்களை மாற்றியமைக்க வேண்டியிருக்கும் போது, கிடைக்கும் தாக்கங்கள் மற்றும் நுட்பங்களைப் புரிந்துகொள்வதை உள்ளடக்குகிறது. ஒரு குறிப்பிட்ட நிச்சயத்திற்கு கடின மீட்டமைப்பின் மூலமாகவோ அல்லது ஒவ்வொரு கமிட்டிக்கும் revert கட்டளைகளை கவனமாகப் பயன்படுத்தினாலும், களஞ்சியம் சுத்தமாகவும், வரலாற்றைப் புரிந்துகொள்ளக்கூடியதாகவும் இருப்பதை உறுதிசெய்வதே குறிக்கோள். கூட்டுத் திட்டங்களுக்கு, இந்த மாற்றங்களைத் தெரிவிப்பதும், இடையூறுகளைத் தடுக்க ரிமோட் களஞ்சியத்தை கவனமாக நிர்வகிப்பதும் முக்கியம். இறுதியில், இந்த கட்டளைகளை மாஸ்டரிங் செய்வது டெவலப்பர்கள் தங்கள் திட்ட காலக்கெடுவை திறம்பட கட்டுப்படுத்த அனுமதிக்கிறது.