ตัวอย่างบทเรียน

இணைப்பு முரண்பாடுகள்: பீதி அடைய வேண்டாம் – புரிந்துகொண்டு தீர்க்கவும்

இணைப்பு முரண்பாடுகள் புதியவர்களை பயமுறுத்தலாம், ஆனால் இந்தப் பகுதிக்குப் பிறகு நீங்கள் அவற்றை அமைதியுடன் சந்திப்பீர்கள். முரண்பாடுகள் ஏன் ஏற்படுகின்றன (Git மனதைப் படிக்காது – எந்த மாற்றம் முக்கியமானது என்பதை அது அறியாது), முரண்பாட்டு குறியீடுகளை எப்படி படிப்பது, மற்றும் சரியான தீர்வை எவ்வாறு தேர்வு செய்வது என்பதைப் பார்ப்போம். இரண்டு அணுகுமுறைகளைக் காண்பிப்போம்: கைமுறைத் தீர்வு மற்றும் இணைப்பு கருவிகளைப் பயன்படுத்தல்.

இணைப்பு முரண்பாடு முரண்பாட்டு குறியீடுகள் முரண்பாட்டுத் தீர்வு
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • இணைப்பு முரண்பாடுகளின் இயல்பைப் புரிந்துகொண்டு அவற்றைப் பயப்படாமல் இருப்பீர்கள் – அவை கணிக்கத்தக்கவையாக மாறும்.
  • Git குறியீடுகளை சரியாகப் படித்து, கைமுறையாக ஒரு முரண்பாட்டை சுயாதீனமாகத் தீர்க்க முடியும்.
  • முரண்பாடுகளை காட்சி முறையில் தீர்க்க, உங்கள் எடிட்டரில் இணைப்பு கருவியை அமைக்க கற்றுக்கொள்வீர்கள்.

จุดเริ่มต้นของบทเรียน

மூன்று வகையான ஒருங்கிணைப்பு முரண்பாடுகள்

  • உள்ளடக்க முரண்பாடுகள்: ஒரே வரிகளில் மாற்றங்கள்
  • மறுபெயரிடல் முரண்பாடுகள்: கோப்பு மாற்றப்பட்டு மறுபெயரிடப்பட்டது
  • நீக்கல் முரண்பாடுகள்: ஒரு கிளையில் கோப்பு நீக்கப்பட்டது, மற்றொன்றில் மாற்றப்பட்டது
  • மறுபெயரிடல்கள் Git-க்கு மிகவும் கடினமானவை
  • சந்தேகத்திற்குரிய முரண்பாடுகளில் கோப்பின் வரலாற்றைச் சரிபார்க்கவும்

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

சிக்கலான முரண்பாட்டின் உடற்கூறியல்

  • <<<<<<< குறியீடுகள் உங்கள் மாற்றங்களைக் காட்டுகின்றன
  • ======= உங்கள் மற்றும் மற்றவரின் பதிப்புகளைப் பிரிக்கிறது
  • >>>>>>> முரண்பாட்டுத் தொகுதியின் முடிவைக் குறிக்கிறது
  • git status அனைத்து சிக்கலான கோப்புகளையும் காண்பிக்கும்
  • git diff மாற்றங்களின் விரிவான ஒப்பீடு

நீங்கள் feature கிளையை main-ல் இணைக்கிறீர்கள் என்று வைத்துக்கொள்ளுங்கள், ஒரு முரண்பாட்டைப் பற்றி செய்தியைப் பார்க்கிறீர்கள். சிக்கலான கோப்புகளைத் திறக்கவும் – நீங்கள் சிறப்பு குறியீடுகளைக் கவனிப்பீர்கள். 7 < HEAD மற்றும் 7 = இடையே உள்ள அனைத்தும் உங்கள் மாற்றங்கள். 7 = மற்றும் 7 > feature இடையே – இணைக்கப்படும் கிளையிலிருந்து மாற்றங்கள். அனைத்து முரண்படும் கோப்புகளையும் பார்க்க git status ஐப் பயன்படுத்தவும், விரிவான வேறுபாடுகளைப் பார்க்க git diff ஐப் பயன்படுத்தவும். நினைவில் கொள்ளுங்கள்: குறியீடுகள் ஒரு பிழை அல்ல, ஆனால் ஒரு முடிவு எடுக்க வேண்டிய இடத்தைக் குறிக்கும் உதவிக்குறிப்பு.

#!/bin/bash
# முரண்பாடு_பகுப்பாய்வு.sh

echo "சோதனைக் களஞ்சியத்தை உருவாக்குகிறோம்"
mkdir conflict-demo && cd conflict-demo
git init

echo "கோப்பை உருவாக்கி main-ல் முதல் கமிட்"
echo 'Line 1' > file.txt
echo 'Line 2' >> file.txt
git add . && git commit -m 'Initial commit'

echo "feature கிளையை உருவாக்கி முதல் வரியை மாற்றுகிறோம்"
git checkout -b feature
sed -i 's/Line 1/Line 1 modified in feature/' file.txt
git commit -am 'Modify line 1 in feature'

echo "main-க்குத் திரும்பி அதே வரியை மாற்றுகிறோம்"
git checkout main
sed -i 's/Line 1/Line 1 modified in main/' file.txt
git commit -am 'Modify line 1 in main'

echo "கிளைகளை இணைக்க முயற்சிக்கிறோம்"
git merge feature || echo 'முரண்பாடு!'

echo "\nநிலையைப் பார்க்கிறோம்:"
git status --short

echo "\nமுரண்பட்ட கோப்பைக் காண்பிக்கிறோம்:"
cat file.txt

முரண்பாடு தீர்வு உத்திகள்

  • கைமுறை திருத்தம்: குறியீடுகளை அகற்றி, தேவையானதை விட்டுவிடவும்
  • GUI கருவிகள்: காட்சி ஒப்பீட்டிற்கு meld, kdiff3
  • --ours/--theirs: உங்கள் அல்லது மற்றவரின் பதிப்பை ஏற்கவும்
  • Rebase-ல் முரண்பாடுகள் ஒவ்வொரு கமிட்டுக்கும் தீர்க்கப்படும்
  • தீர்வுக்குப் பிறகு git add மற்றும் git commit ஐ மறக்காதீர்கள்

முரண்பாடு கண்டறியப்பட்டால், உங்களுக்கு பல வழிகள் உள்ளன. நீங்கள் கோப்பை கைமுறையாக திறந்து திருத்தலாம், குறியீடுகளை அகற்றி தேவையான குறியீட்டை விட்டுவிடலாம். காட்சி பார்வையாளர்களுக்கு meld அல்லது kdiff3 போன்ற கருவிகள் பொருந்தும் – அவை ஒரே நேரத்தில் மூன்று பதிப்புகளைக் காட்டுகின்றன. உங்கள் மாற்றங்களில் நம்பிக்கை இருந்தால், உங்கள் பதிப்பை வைக்க git checkout --ours ஐப் பயன்படுத்தவும், அல்லது மற்றவரின் பதிப்புக்கு --theirs ஐப் பயன்படுத்தவும். Rebase-ல் குறிப்பாக கவனமாக இருக்க வேண்டும்: இங்கு முரண்பாடுகள் மறுஅடிப்படையாக்கப்படும் ஒவ்வொரு கமிட்டிலும் ஏற்படலாம்.

#!/bin/bash
# தீர்வு_உத்திகள்.sh

echo "வழி 1: கைமுறை தீர்வு"
echo 'கோப்பைத் திருத்தி, முரண்பாட்டுக் குறியீடுகளை அகற்றவும்'
echo 'பின்னர் இயக்கவும்: git add file.txt'

echo "\nவழி 2: எங்கள் பதிப்பை ஏற்கவும்"
git checkout --ours file.txt

echo "\nவழி 3: அவர்கள் பதிப்பை ஏற்கவும்"
git checkout --theirs file.txt

echo "\nவழி 4: இணைப்பு கருவியைப் பயன்படுத்தவும்"
echo 'git mergetool --tool=meld'

echo "\nவழியைத் தேர்ந்தெடுத்த பிறகு இணைப்பை முடிக்கவும்:"
echo 'git commit -m "Resolve merge conflict"'

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 34 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. மூன்று வகையான ஒருங்கிணைப்பு முரண்பாடுகள்
  2. சிக்கலான முரண்பாட்டின் உடற்கூறியல்
  3. முரண்பாடு தீர்வு உத்திகள்
  4. தடுப்பு மற்றும் சிறந்த நடைமுறைகள்
  5. பல்வரி முரண்பாடுகளை Git-ல் எப்படி வாசிப்பது
  6. சூழல் குறியீடுகளை விளக்குதல்
  7. உள்ளமை முரண்பாடுகள்: தீர்வு உத்திகள்
  8. தானியக்கம் மற்றும் மேம்பட்ட கருவிகள்
  9. தேர்வு உத்தி: HEAD அல்லது கிளை?
  10. ‘குறைந்த ஆச்சரியம்’ கொள்கை
  11. சொற்பொருள் முரண்பாடுகள்: கண்ணுக்குத் தெரியாத எதிரிகள்
  12. கருவிகள் மற்றும் தானியக்கம்
  13. கருவி தேர்வு: எப்போது எதைப் பயன்படுத்துவது
  14. VS Code: உள்ளமைப்பு மற்றும் மேம்பட்ட அம்சங்கள்
  15. Beyond Compare: சிக்கலான முரண்பாடுகளுக்கான காட்சிகள்
  16. Git Flow மற்றும் தானியக்கத்தில் ஒருங்கிணைப்பு
  17. .gitattributes மூலம் இணைப்பை தானியக்கமாக்குதல்
  18. எங்கள் சொந்த Merge Driver ஐ எழுதுதல்
  19. Git rerere — உங்கள் தனிப்பட்ட உதவியாளர்
  20. மேம்பட்ட தானியக்க உத்திகள்
  21. பெரிய குழுக்களுக்கான Workflow ஐ வடிவமைத்தல்
  22. முரண்களைத் தடுப்பதற்கான கருவியாக Code Review
  23. நீண்ட கால Feature கிளைகளுடன் பணிபுரியும் உத்திகள்
  24. கருத்து முரண்பாடுகளைத் தீர்க்கும் கருவிகள் மற்றும் தானியங்கி முறைகள்
  25. கண்மூடித்தனமாக மாற்றங்களை ஏற்பதன் ஆபத்துகள்
  26. பாதுகாப்பான முரண்பாடு தீர்வு உத்திகள்
  27. மெர்ஜுக்குப் பின் சோதனை: என்ன சரிபார்க்க வேண்டும்
  28. CI/CD உடன் ஒருங்கிணைப்பு மற்றும் தடுப்பு நடவடிக்கைகள்
  29. Rebase மற்றும் Merge முரண்பாடுகளுக்கு இடையே உள்ள வேறுபாடு
  30. --rebase-merges உடன் வேலை செய்தல்
  31. தொடர்ச்சியான முரண்பாடுகளைத் தீர்க்கும் உத்திகள்
  32. மேம்பட்ட நுட்பங்கள் மற்றும் ரீபேஸ் பிழைத்திருத்தம்
  33. CI/CD ஒரு தரக் கட்டுப்பாட்டு அமைப்பாக
  34. GitHub Actions: முரண்பாடு சரிபார்ப்பு
  35. Danger-JS: புத்திசாலித்தனமான சரிபார்ப்பு தானியக்கம்
  36. CI/CD இல் முரண்பாடுகளை தானாகத் தீர்ப்பது
  37. முரண்பாடுகள்: பயத்திலிருந்து நம்பிக்கைக்கு

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. அறிமுகம்: Git-ஐ பூஜ்ஜியத்திலிருந்து நம்பிக்கையான டெவலப்பர் வரை
  2. Git எதற்கு தேவை - மற்றும் ஏன் அது இல்லாமல் வேலைக்கு சேர்க்க மாட்டார்கள்
  3. நிறுவல் மற்றும் அமைப்புகள்: Git-ஐ முதல் முறையாகப் பயன்படுத்தத் தயார்படுத்துதல்
  4. முதல் களஞ்சியம்: init, add, commit மற்றும் குறியீட்டின் மந்திரம்
  5. வரலாற்றை வாசித்தல்: log, diff, show மற்றும் கடந்த காலத்தில் செல்லுதல்
  6. கிளைகள்: உங்கள் குறியீட்டின் இணை யதார்த்தம்
  7. பிழைகளைச் சரிசெய்தல்: restore, reset, revert — சரியான மற்றும் ஆபத்தான முறைகள்
  8. GitHub மற்றும் தொலை களஞ்சியங்கள்: உங்கள் குறியீடு கிளவுட் (Cloud) இல்
  9. குழு பணிகள்: ஃபோர்குகள், ஃபீச்சர் பிரான்சுகள் மற்றும் புல் ரெக்வெஸ்ட்கள்
  10. இணைப்பு முரண்பாடுகள்: பீதி அடைய வேண்டாம் – புரிந்துகொண்டு தீர்க்கவும்
  11. உண்மையான குழுக்களில் Git செயல்முறைகள்: எந்த workflow-ஐ தேர்வு செய்வது
  12. மேம்பட்ட கருவிகள்: rebase, stash, cherry-pick மற்றும் குறிச்சொற்கள்
  13. இறுதித் திட்டம்: உண்மையான குழு மேம்பாட்டு பணியை உருவகப்படுத்துதல்