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

Migogoro ya Kuunganisha Mabadiliko: Usiogope — Tuchambue na Tutatue

Migogoro huwaogopesha wageni, lakini baada ya sehemu hii utakutana nayo kwa utulivu. Tutachambua kwa nini migogoro hutokea (Git haisomi mawazo — haijui ni mabadiliko yapi ni muhimu zaidi), jinsi ya kusoma viashiria vya mgogoro na jinsi ya kuchagua suluhisho sahihi. Tutaonyesha mbinu mbili: utatuzi wa mkono na matumizi ya zana za kuunganisha.

mgogoro wa kuunganisha viashiria vya mgogoro utatuzi wa mgogoro
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • Utaelewa asili ya migogoro ya kuunganisha na utaacha kuiogopa — itakuwa inatabirika.
  • Utaweza kutatua mgogoro kwa mkono, kwa kusoma kwa usahihi viashiria vya Git.
  • Utajifunza kusanidi zana ya kuunganisha katika kihariri chako ili kutatua migogoro kwa kuona.

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

Aina Tatu za Mizozo ya Kuunganisha

  • Mizozo ya maudhui: mabadiliko katika mistari ileile
  • Kubadilisha majina: faili iliyobadilishwa na kubadilishwa jina
  • Kufuta: faili imefutwa kwenye tawi moja, ikabadilishwa kwenye lingine
  • Kubadilisha majina ndio hatari zaidi kwa Git
  • Angalia historia ya faili ukipata mizozo yenye mashaka

Fikiria unafanyia kazi mradi muhimu, na ghafla Git inaripoti mzozo. Hatua ya kwanza kutatua ni kuelewa aina yake. Mizozo ya maudhui hutokea wakati mabadiliko yamegusa mistari ileile kwenye matawi tofauti. Kubadilisha majina ni changamoto zaidi: mtengenezaji mmoja anabadilisha jina la faili, mwingine kwa wakati huo anahariri maudhui yake. Aina ya tatu ni kufuta, wakati faili inapotea kwenye tawi moja, lakini inaendelea kuishi kwenye lingine. Kubadilisha majina mara nyingi husababisha changamoto, kwa sababu Git haifuatilia historia ya faili kwa usahihi baada ya kubadilisha jina. Kwa hivyo, ukipata mizozo yenye mashaka, angalia daima historia ya mabadiliko ya faili.

Muundo wa Mzozo Mgumu

  • Alama <<<<<<< zinaonyesha mabadiliko yako
  • ======= linatenganisha toleo lako na la mwenzako
  • >>>>>>> linaashiria mwisho wa kizuizi cha mzozo
  • git status itaonyesha faili zote zenye matatizo
  • git diff — ulinganisho wa kina wa mabadiliko

Tuseme unaunganisha tawi la feature kwenye main na kuona ujumbe wa mzozo. Fungua faili zenye matatizo — utaona alama maalum. Kila kitu kati ya <<<<<<< HEAD na =======, ndio mabadiliko yako. Kati ya ======= na >>>>>>> feature, ndio mabadiliko kutoka kwenye tawi linalounganishwa. Tumia git status ili kuona faili zote zinazokinzana, na git diff kwa ulinganisho wa kina wa tofauti. Kumbuka: alama si kosa, bali ni kidokezo cha mahali unapohitaji kufanya uamuzi.

#!/bin/bash
# conflict_analysis.sh

echo "Tunaunda hazina ya majaribio"
mkdir conflict-demo && cd conflict-demo
git init

echo "Tunaunda faili na toleo la kwanza kwenye main"
echo 'Line 1' > file.txt
echo 'Line 2' >> file.txt
git add . && git commit -m 'Toleo la kwanza'

echo "Tunaunda tawi la feature na kubadilisha mstari wa kwanza"
git checkout -b feature
sed -i 's/Line 1/Line 1 imebadilishwa kwenye feature/' file.txt
git commit -am 'Badilisha mstari wa 1 kwenye feature'

echo "Tunarudi kwenye main na kubadilisha mstari uleule"
git checkout main
sed -i 's/Line 1/Line 1 imebadilishwa kwenye main/' file.txt
git commit -am 'Badilisha mstari wa 1 kwenye main'

echo "Tunajaribu kuunganisha matawi"
git merge feature || echo 'Mzozo!'

echo "\nTunaangalia hali:"
git status --short

echo "\nTunaonyesha faili yenye mzozo:"
cat file.txt

Mikakati ya Kutatua Mizozo

  • Kuhariri kwa mkono: ondoa alama, acha kinachohitajika
  • Vifaa vya GUI: meld, kdiff3 kwa ulinganisho wa kuona
  • --ours/--theirs: kubali toleo lako au la mwenzako
  • Kwenye rebase, mizozo hutatuliwa kwa kila toleo
  • Baada ya kutatua, usisahau git add na git commit

Mzozo unapogunduliwa, una njia kadhaa. Unaweza kufungua faili kwa mkono na kuihariri, ukiondoa alama na kuacha msimbo unaohitajika. Kwa wale wanaopendelea kuona, vifaa kama meld au kdiff3 vinafaa - vinaonyesha matoleo matatu ya faili kwa wakati mmoja. Ikiwa una uhakika na mabadiliko yako, tumia git checkout --ours ili kuacha toleo lako, au --theirs kwa la mwenzako. Kuwa mwangalifu hasa kwenye rebase: hapa mizozo inaweza kutokea kwenye kila toleo linalorekebishwa.

#!/bin/bash
# resolve_strategies.sh

echo "Njia ya 1: Kutatua kwa mkono"
echo 'Hariri faili, ukiondoa alama za mzozo'
echo 'Kisha fanya: git add file.txt'

echo "\nNjia ya 2: Kubali toleo letu"
git checkout --ours file.txt

echo "\nNjia ya 3: Kubali toleo lao"
git checkout --theirs file.txt

echo "\nNjia ya 4: Tumia kifaa cha kuunganisha"
echo 'git mergetool --tool=meld'

echo "\nBaada ya kuchagua njia, malizia kuunganisha:"
echo 'git commit -m "Tatua mzozo wa kuunganisha"'

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

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

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

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

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

  1. Aina Tatu za Mizozo ya Kuunganisha
  2. Muundo wa Mzozo Mgumu
  3. Mikakati ya Kutatua Mizozo
  4. Kinga na Mbinu Bora
  5. Jinsi ya Kusoma Mizozo yenye Mistari Mingi kwenye Git
  6. Kufafanua Alama za Muktadha
  7. Mizozo Iliyowekwa Katika Nyingine: Mikakati ya Kutatua
  8. Zana za Kiotomatiki na za Juu
  9. Mkakati wa Kuchagua: HEAD au Tawi?
  10. Kanuni ya 'Usishangae Sana'
  11. Migogoro ya Kisemantiki: Adui Wasioonekana
  12. Zana na Uendeshaji Kiotomatiki
  13. Kuchagua Zana: Wakati wa Kutumia Nini
  14. VS Code: Mipangilio na Vipengele vya Juu
  15. Beyond Compare: Hali za Migogoro Ngumu
  16. Kuunganisha katika Git flow na uendeshaji otomatiki
  17. Tunaendesha kuunganisha kiotomatiki kupitia .gitattributes
  18. Mikakati ya hali ya juu ya uendeshaji otomatiki
  19. Tunabuni workflow kwa timu kubwa
  20. Mikakati ya hali ya juu ya uendeshaji otomatiki
  21. Tunabuni workflow kwa timu kubwa
  22. Code Review kama Zana ya Kuzuia Migogoro
  23. Mikakati ya Kufanya Kazi na Matawi ya Vipengele ya Muda Mrefu
  24. Zana na Otomatiki ya Kutatua Migogoro
  25. Hatari za Kukubali Mabadiliko kwa Vipofu
  26. Mikakati ya Utatuzi Salama wa Migogoro
  27. Kujaribu Baada ya Muunganisho: Nini cha Kuangalia
  28. Kuunganishwa na CI/CD na Hatua za Kinga
  29. Jinsi Migogoro ya Rebase Inavyotofautiana na Merge
  30. Kufanya Kazi na --rebase-merges
  31. Mikakati ya Kutatua Migogoro Mfululizo
  32. Mbinu za Kina na Utatuzi wa Rebase
  33. CI/CD Kama Mfumo wa Udhibiti wa Ubora
  34. GitHub Actions: Kuangalia Migogoro
  35. Danger-JS: Otomatiki ya Ukaguzi wa Akili
  36. Utatuzi wa Kiotomatiki wa Migogoro kwenye CI/CD
  37. Migogoro: Kutoka Hofu hadi Ujasiri

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

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

  1. Utangulizi: Git kutoka mwanzoni hadi kwa msanidi programu anayejiamini
  2. Kwa nini Git inahitajika — na kwa nini bila yake huwezi kupata kazi
  3. Kusakinisha na Kusanidi: Kutayarisha Git kwa Matumizi ya Kwanza
  4. Hazina ya Kwanza: init, add, commit na uchawi wa faharasa
  5. Kusoma Historia: log, diff, show na Urambazaji wa Nyuma
  6. Matawi: Uhalisia Sambamba wa Msimbo Wako
  7. Kufuta Makosa kwa Usahihi: restore, reset, revert — sahihi na hatari
  8. GitHub na Hifadhi za Mbali: Msimbo Wako Hewani
  9. Kazi ya Timu: Forks, Matawi ya Sifa na Maombi ya Kuvuta
  10. Migogoro ya Kuunganisha Mabadiliko: Usiogope — Tuchambue na Tutatue
  11. Michakato ya Git katika Timu za Kweli: Njia gani ya kuchagua
  12. Zana za Kina: Rebase, Stash, Cherry-Pick na Lebo
  13. Mradi wa Mwisho: Kuiga Maendeleo ya Timu Halisi