ஜிட் ரீசெட் -கலப்பு, -மென்மை, மற்றும் -கடினத்திற்கு இடையே உள்ள வித்தியாசம் என்ன?

Jit Ricet Kalappu Menmai Marrum Katinattirku Itaiye Ulla Vittiyacam Enna



Git இல், ஒவ்வொரு உறுதிமொழியும் முந்தைய உறுதிப்பாட்டுடன் இணைக்கப்பட்டுள்ளது, மேலும் HEAD பணிபுரியும் கிளையின் மிக சமீபத்திய உறுதிப்பாட்டைக் குறிக்கிறது. அர்ப்பணிப்பு வரலாறு உறுதிகளின் மரமாக சேமிக்கப்படுகிறது. இருப்பினும், சில நேரங்களில் டெவலப்பர்கள் உறுதி வரலாற்றை மாற்ற வேண்டும். இந்த நோக்கத்திற்காக, ' $ கிட் மீட்டமை ” கட்டளை Git களஞ்சியத்தின் வரலாற்றை மாற்றவும் மற்றும் தவறுகளை சரிசெய்யவும் பயன்படுத்தப்படுகிறது.

இந்த கட்டுரை ஜிட் ரீசெட் -ஹார்ட், -மென்ட் மற்றும் -மிக்ஸ்டு ஆகியவற்றுக்கு இடையேயான வித்தியாசத்தை சுருக்கமாக விளக்கும்.

ஜிட் ரீசெட் -கலப்பு, -மென்மை, மற்றும் -கடினத்திற்கு இடையே உள்ள வித்தியாசம் என்ன?

Git பல மீட்டமைப்பு விருப்பங்களை வழங்குகிறது. அவர்கள் கமிட்களை எவ்வாறு கையாளுகிறார்கள் என்பதன் அடிப்படையில், கிடைக்கக்கூடிய அனைத்து விருப்பங்களும் ஒருவருக்கொருவர் வேறுபடுகின்றன. அவை அனைத்தும் Git வரலாற்றை மாற்றியமைத்து தலையை பின்னோக்கி நகர்த்துகின்றன. மேலும், அவை மாற்றங்களை வித்தியாசமாக கையாள்கின்றன:







  • ' - மென்மையான ' விருப்பம் ' உடன் பயன்படுத்தப்படுகிறது $ கிட் மீட்டமை ” என்ற கட்டளை கோப்புகளை வைத்திருக்கவும் மற்றும் கமிட் மாற்றங்களை Git ஸ்டேஜிங் இண்டெக்ஸில் திருப்பி அனுப்பவும்.
  • ' $ கிட் ரீசெட் -கலப்பு ” செய்த மாற்றங்களை செயல்தவிர்க்கவும், வேலை செய்யும் கோப்பகத்திலிருந்து நீக்காமல், ஸ்டேஜிங் இன்டெக்ஸில் இருந்து கோப்பை அகற்றவும் பயன்படுகிறது.
  • ' - கடினமான '' உடன் விருப்பம் $ கிட் மீட்டமை ” கட்டளை அனைத்து மாற்றங்களையும் நீக்கவும் மற்றும் உள்ளூர் வேலை கோப்பகத்திலிருந்து அவற்றை அகற்றவும் பயன்படுகிறது.

எப்படி என்பதைப் பார்க்க ஒரு உதாரணத்தைப் பார்ப்போம் ' $ கிட் மீட்டமை ” கட்டளை வெவ்வேறு விருப்பங்களுடன் வேலை செய்கிறது!



படி 1: விரும்பிய Git களஞ்சியத்திற்குச் செல்லவும்

முதலில், '' ஐப் பயன்படுத்தி நீங்கள் விரும்பிய Git களஞ்சியத்திற்குச் செல்லவும் சிடி ” கட்டளை:



$ சிடி 'சி:\போ \t is_repo'





படி 2: கோப்பை உருவாக்கவும்

இப்போது, ​​ஒரு கோப்பை உருவாக்க கீழே கொடுக்கப்பட்டுள்ள கட்டளையை இயக்கவும்:

$ தொடுதல் File4.txt



படி 3: ஸ்டேஜிங் இன்டெக்ஸில் கோப்பைச் சேர்க்கவும்

பயன்படுத்த ' git சேர் ” புதிதாக உருவாக்கப்பட்ட கோப்பை ஸ்டேஜிங் இன்டெக்ஸில் சேர்க்க கட்டளை:

$ git சேர் File4.txt

படி 4: மாற்றங்களைச் செய்யுங்கள்

அடுத்து, '' ஐ இயக்குவதன் மூலம் அனைத்து மாற்றங்களையும் பணிக் களஞ்சியத்தில் சேர்க்கவும் git உறுதி ” கட்டளை:

$ git உறுதி -மீ 'கோப்பு 4 சேர்க்கப்பட்டது'

படி 5: Git பதிவைச் சரிபார்க்கவும்

பின்னர், சேர்க்கப்பட்ட சமீபத்திய கமிட்களைக் காண Git பதிவு வரலாற்றைச் சரிபார்க்கவும்:

$ git பதிவு

கீழே உள்ள வெளியீட்டில், சமீபத்திய சேர்க்கப்பட்ட அனைத்து கமிட்களும் காட்டப்படுவதைக் காணலாம், மேலும் ' தலை ” என்பது சமீபத்திய உறுதிமொழியை சுட்டிக்காட்டுகிறது:

குறிப்பு: HEAD இன் தற்போதைய பாயிண்டிங் நிலையை சிறந்த முறையில் பார்க்க, ' git பதிவு 'உடன் கட்டளை' - ஒன்லைன் 'கொடி:

$ git பதிவு --நிகழ்நிலை

கீழே கொடுக்கப்பட்டுள்ள வெளியீடு கமிட் செய்திகளுடன் கூடிய கமிட் SHA ஹாஷின் பட்டியலைக் காட்டுகிறது:

படி 6: git reset -soft Command ஐப் பயன்படுத்தவும்

Git களஞ்சியத்திலிருந்து ஸ்டேஜிங் இண்டெக்ஸுக்கு சேர்க்கப்பட்ட மாற்றங்களை மாற்றியமைக்க, ' git ரீசெட் '' கட்டளையுடன் '- மென்மையான ” விருப்பம், மற்றும் சுட்டியை நகர்த்த தேவையான ஹெட் நிலையை குறிப்பிடவும்:

$ git ரீசெட் --மென்மையான தலை~ 1

படி 7: Git நிலையை சரிபார்க்கவும்

இப்போது, ​​HEAD இன் ரிவர்டிங் நிலையைச் சரிபார்க்கவும், Git களஞ்சிய நிலையைச் சரிபார்க்கவும்:

$ git நிலை

அதைக் காணலாம் ' git reset - மென்மையானது ” கட்டளை Git ஸ்டேஜிங் இண்டெக்ஸில் கமிட் மாற்றங்களை அளித்துள்ளது. மேலும், ' File4.txt ” கோப்பு இப்போது Git ஸ்டேஜிங் இண்டெக்ஸில் உள்ளது மற்றும் உறுதி செய்யப்பட வேண்டும்:

படி 8: Git பதிவைச் சரிபார்க்கவும்

HEAD இன் தற்போதைய நிலையைப் பார்க்க, கொடுக்கப்பட்ட கட்டளையை '' உடன் இயக்கவும் - ஒன்லைன் 'விருப்பம்:

$ git பதிவு --நிகழ்நிலை

இங்கே, HEAD சுட்டிக்காட்டுகிறது ' கோப்பு 3 ”உறுதி:

படி 9: git reset - கலப்பு கட்டளையைப் பயன்படுத்தவும்

செய்த மாற்றங்களைச் செயல்தவிர்க்கவும், பணிபுரியும் கோப்பகத்தில் இருந்து கோப்புகளை நீக்காமல் அவற்றை ஸ்டேஜிங் பகுதியிலிருந்து அகற்றவும், ''ஐ இயக்கவும். $ கிட் ரீசெட் -கலப்பு ”கமாண்டின் தேவையான HEAD நிலையுடன் கட்டளை:

$ git ரீசெட் --கலப்பு தலை~ 1

படி 10: Git நிலையை சரிபார்க்கவும்

Git களஞ்சிய நிலையைச் சரிபார்ப்பதன் மூலம் புதிதாக சேர்க்கப்பட்ட மாற்றங்களைக் காண்க:

$ git நிலை

குறிப்பிட்ட கமிட் மாற்றங்கள் ஸ்டேஜிங் பகுதியில் இருந்து அகற்றப்படுவதை அவதானிக்கலாம். இருப்பினும், அவை வேலை செய்யும் பகுதியில் வைக்கப்படுகின்றன:

படி 11: Git பதிவைச் சரிபார்க்கவும்

SHA ஹாஷுடன் Git களஞ்சிய குறிப்பு பதிவு வரலாற்றைச் சரிபார்க்கவும்:

$ git பதிவு --நிகழ்நிலை

படி 12: git reset - கடினமான கட்டளையைப் பயன்படுத்தவும்

Git உள்ளூர் வேலை கோப்பகத்திலிருந்து சேர்க்கப்பட்ட மாற்றங்களை அகற்ற, ''ஐ இயக்கவும் $ கிட் மீட்டமைப்பு - கடினமானது ” கட்டளை:

$ git ரீசெட் --கடினமான தலை~ 1

படி 13: திரும்பிய ஹெட் பாயிண்டரைச் சரிபார்க்கவும்

ஹெட் பாயிண்டரைச் சரிபார்க்க, குறிப்பிட்ட நிலைக்குத் திரும்பவும், ''ஐ இயக்கவும் git பதிவு ” கட்டளை:

$ git பதிவு --நிகழ்நிலை

HEAD 'ஐ சுட்டிக்காட்டுகிறது என்பதை கீழே உள்ள வெளியீடு காட்டுகிறது கோப்பு1 சேர்க்கப்பட்டது ”உறுதி:

படி 14: Git நிலையைச் சரிபார்க்கவும்

சேர்க்கப்பட்ட மாற்றங்களைக் காண, Git நிலையைச் சரிபார்க்கவும்:

$ git நிலை

எங்களிடம் எந்த டிராக் மற்றும் நிலுவையில் உள்ள மாற்றங்கள் இல்லை என்பதைக் காணலாம் ' File2.txt ' கோப்பு. எனவே, File2.txt முற்றிலும் அகற்றப்பட்டது:

படி 15: களஞ்சிய உள்ளடக்கத்தின் பட்டியலைச் சரிபார்க்கவும்

உள்ளடக்கத்தின் களஞ்சியப் பட்டியலைச் சரிபார்க்க, '' ஐ இயக்கவும் ls ” கட்டளை:

$ ls

நீங்கள் பார்க்க முடியும் என, ' File2.txt தற்போதைய கோப்பகத்தில் கோப்பு இல்லை:

ஜிட் ரீசெட் -மிக்ஸ்டு, -சாஃப்ட் மற்றும் -ஹார்ட் ஆப்ஷன்களுக்கு இடையே உள்ள வித்தியாசத்தை விளக்கியுள்ளோம்.

முடிவுரை

' git ரீசெட் ” கட்டளை மாற்றங்களை மீட்டமைக்கவும், Git களஞ்சியத்தின் வரலாற்றை மாற்றவும் மற்றும் தவறுகளை சரிசெய்யவும் பயன்படுகிறது. ' git reset - மென்மையானது ” கட்டளை கோப்புகளை வைத்திருக்கிறது மற்றும் கமிட் மாற்றங்களை Git ஸ்டேஜிங் பகுதிக்கு வழங்குகிறது. மாறாக, ' git reset -கலப்பு ” கட்டளை கமிட் மாற்றங்களை செயல்தவிர்க்கவும் மற்றும் செயல்படும் கோப்பகத்திலிருந்து கோப்பை நீக்காமல் ஸ்டேஜிங் இன்டெக்ஸில் இருந்து அகற்றவும். அனைத்து மாற்றங்களையும் நீக்கி அவற்றை Git வேலை செய்யும் பகுதியிலிருந்து அகற்ற, ' git reset - கடின ” என்ற கட்டளையைப் பயன்படுத்தலாம். இந்தக் கட்டுரை, git reset-mixed, -soft, and-hard ஆகியவற்றுக்கு இடையேயான வித்தியாசத்தை விளக்குகிறது.