git merge — bir tarmoqdagi o’zgarishlarni boshqasiga birlashtiradigan buyruq. Yangi funksiyani alohida tarmoqda yozib tugatdingiz — endi uni main ga qo’shish kerak. Aynan shu vazifani git merge bajaradi. Bu tarmoqlar bilan ishlashning yakuniy bosqichidir.
git merge — bir tarmoqning o’zgarishlarini joriy tarmoqqa qo’shadigan buyruq. U ikki tarmoqning tarixini birlashtiradi.
Tarmoqni birlashtirish
Birlashtirish uchun avval qabul qiluvchi tarmoqqa (odatda main) o’tamiz, so’ng git merge bilan boshqa tarmoqni qo’shamiz:
git switch main
git merge yangi-funksiya
Updating 9f8e7d6..e5f6a7b
Fast-forward
yangi.txt | 1 +
1 file changed, 1 insertion(+)
main ga o’tib, yangi-funksiya ni birlashtirdik. Endi yangi-funksiya dagi barcha o’zgarishlar main da. “Fast-forward” — bu eng oddiy birlashtirish (quyida tushuntiramiz).
Fast-forward va merge commit
Birlashtirishning ikki turi bor. Ularni jadvalda ko’ramiz:
| Turi | Qachon | Natijasi |
|---|---|---|
| Fast-forward | main o’zgarmagan |
oddiy siljish |
| Merge commit | ikkala tarmoq o’zgargan | yangi birlashtiruvchi commit |
Agar main ham, boshqa tarmoq ham o’zgargan bo’lsa, Git maxsus “merge commit” yaratadi:
git merge yangi-funksiya
Merge made by the 'ort' strategy.
yangi.txt | 1 +
1 file changed, 1 insertion(+)
Bu holatda Git ikkala tarmoq tarixini birlashtirib, yangi commit yaratdi.
To’liq ish jarayoni
Tarmoq bilan ishlashning to’liq davrasini ko’ramiz:
git switch -c funksiya
git commit -am "Yangi funksiya"
git switch main
git merge funksiya
git branch -d funksiya
Switched to a new branch 'funksiya'
[funksiya a1b2c3d] Yangi funksiya
Switched to branch 'main'
Updating ... Fast-forward
Deleted branch funksiya
Bu — professional Git ish jarayonining klassik namunasi: tarmoq yaratish → ishlash → main ga birlashtirish → tarmoqni o’chirish.
Birlashtirishdan oldin
Muhim maslahat: birlashtirishdan oldin qabul qiluvchi tarmoq (main) da ekaningizga ishonch hosil qiling — git merge joriy tarmoqqa qo’shadi. Agar tarmoqlar bir xil faylni o’zgartirgan bo’lsa, konflikt yuzaga kelishi mumkin — bu keyingi darsning mavzusi.
Xulosa
Bu bo’limda git merge bilan tarmoqlarni birlashtirishni, fast-forward va merge commit farqini hamda to’liq ish jarayonini ko’rib chiqdik. Merge — tarmoqlardagi ishni birlashtirishning quroli. Keyingi darsda merge konfliktlarini hal qilishga o’tamiz.