GitIntermediate
Merge — branch-এর কাজ একত্র করা
git merge, fast-forward, three-way merge — বাংলায়।
16টি অংশবাংলা ভাষায়
Merge কী?
Merge হলো একটি branch-এর পরিবর্তনগুলোকে অন্য branch-এ আনার প্রক্রিয়া। সাধারণত কাজ শেষ হলে feature থেকে main-এ merge করা হয়।
Merge basicbash
bash
git switch main
git merge feature/contact-pageFast-forward merge
যদি main branch feature শাখা ছাড়ার পরে কোনো নতুন commit না পায়, তখন Git pointer সরাসরি এগিয়ে নিয়ে যায় — একে fast-forward বলে। নতুন merge commit হয় না।
main ●──●──●
feature └──●──●
merge → main ●──●──●──●──● (শুধু pointer সরে যায়)Three-way merge (merge commit)
যদি মূল branch-ও এগিয়ে গিয়ে থাকে, তখন Git দুটি branch-এর কমন ancestor থেকে দুটি পরিবর্তন আলাদাভাবে দেখে একটি merge commit তৈরি করে।
main ●──●──A──C
feature └──B
merge → ●──●──A──C──M
└──BMerge conflict হলে
যদি দুটি শাখায় একই ফাইলের একই লাইনে ভিন্ন পরিবর্তন হয়, Git নিজে সিদ্ধান্ত নিতে পারে না — তখন conflict দেখা দেয়। সমাধান নিয়ে পরবর্তী অধ্যায়ে বিস্তারিত।
Merge-এর আগে যা পরীক্ষা করবেন
- বর্তমান branch-এ কোনো unstaged পরিবর্তন নেই?
- বিলম্বিত stash? (
git stash list) - টার্গেট branch-এ নতুন commit আছে?
- আগে final যোগাযোগ করুন — টিমের নিয়ম অনুযায়ী
Merge দিয়ে না commit করা
git merge --no-ff feature/x # সবসময় merge commit
git merge --ff-only feature/x # fast-forward না হলে failকখন merge, কখন rebase
branch-এর ইতিহাস preserve করতে চাইলে merge; ইতিহাস linear ও পরিচ্ছন্ন রাখতে চাইলে rebase। public branch-এ কখনো rebase করবেন না।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।