Git භාවිතා කරන බොහෝ devs ලා merge conflict එකක් දැකලා “Git ගැටලුව” කියලා කියනවා. නමුත් වාසියට ගොඩක් කාලයක් backend projects වල වැඩ කරලා බලනකොට, මේ ගැටලුව ඇත්තටම version control එකේ නොව, අපේ වැඩපිළිවෙළේ ඇති අඩුපාඩුවක් කියලා තේරුම් ගත හැකිය.
Merge conflict එකක් ඇති වෙන්නේ, Git එකට “කොහොමද මේ වෙනස්කම් එකට එකතු කරන්නේ?” කියන පැනයට පිළිතුරක් සොයාගන්න බැරි වෙලා. උදාහරණයක් ලෙස, Developer A කෙනෙක් controller එකේ validation එක එක්ක වැඩ කරන්නේ, Developer B කෙනෙක් response format එක වෙනස් කරන්නේ. දෙදෙනාම එකම method එක edit කරලා Git එක “කොහොමද ඉදිරියට යන්න?” කියලා නවතා දෙනවා. මෙන්න Git එකේ අරමුණ – ගැටලුව පෙන්වීම, විසඳුම ලබා දීම නොවේ.
මෙම ගැටලුවේ මූලික හේතුව “branch” එක දිගටම තබාගන්න කාලයයි. කෙනෙකුගේ feature branch එක හතේ දවස් හෝ සතියක් පමණ තවත් main branch එකේ වෙනස්කම් සිදුවෙයි – class rename, refactor, bug fix, dependency update වගේ. ඔබ merge කිරීමේදී, ඔබේ code එක පරණ version එකකට පදනම් වූවක් වෙනවා. Git එක එය පළමුවෙන්ම ඔබට කියලා දෙයි.
අදාල conflict එක විසඳීමට ගතවන මිනිත්තු කෙටි වුවත්, “ඇයි මේ conflict?” කියන ප්රශ්නයේ පිළිතුරු සොයාගැනීමට ගතවන කාලය වඩාත් වැදගත්. ඔබේ feature එක සතියක පටන් ගත්තාම, මැදින් pull request 6ක් merge වී, service එක refactor වී, shared logic එක නව class එකකට ගෙන යාමට, production bug එකක් fix කරාම, ඔබට අලුත් mental model එකක් ගොඩනගන්න වෙයි. ඒකයි ගැටලුවේ සැබෑ වියදම.
ශ්රී ලංකාවට ඇති වැදගත්කම
- සිසුන් – කුඩා pull request, නිතර merge කිරීමේ පුරුදු ගන්නා මඟින් teamwork හා code ownership ගැන ඉගෙන ගත හැකිය.
- විකාශකයින් – දිගු branch එකක් තබාගෙන ඉන්නවට වඩා, කෙටි feature branch එකක් භාවිතා කිරීමෙන් conflict අවම වෙයි, productivity වැඩිවේ.
- ව්යාපාර – වැඩි ගුණාත්මක code, වේගවත් release cycle, අඩු downtime – මෙයින් පාරිභෝගික සතුටත්, ව්යාපාරික ආදායමත් වර්ධනය වෙයි.
ඉතින්, merge conflict එක Git එකේ “බලපාන” ගැටලුවක් නොව, ඔබේ development process එකේ “දෝෂ” එකයි. කෙටි branch, නිතර merge, හොඳ communication – මේවා අනුගමනය කරලා ඔබේ කණ්ඩායමට අඩු ගැටලු, ඉහල නිමාවක් ලබා ගන්න පුළුවන්.
ඉදිරියේදී, Git එක ඔබට conflict එකක් පෙන්වන්නේ “ඇයි?” කියලා නොව “කොහොමද?” කියලා. එම “ඇයි” පිළිතුරු ඔබේ කණ්ඩායමේ වැඩපිළිවෙළේ තිබෙන විශ්ලේෂණය කරලා හදාගන්න.