තොරතුරු තාක්ෂණ ක්ෂේත්‍රයේ සිටින බොහෝ දෙනෙක් නිතරම කතා වෙන දේයක් තමයි GitHub කියල කියන්නේ. GitHub කියල කියන්නේ අන්තර්ජාලය සමග සම්බන්ද වුන එක්තරා ආකාරයක සේවාවක්.

GitHub ගැන හරියට තේරුම් ගන්න නම් Git කියන්නේ මොකක්ද කියල දැන ගන්න ඕන. Git කියන්නේ Open-Source Version Control System එකක්. Git ආරම්භ කරේත් , Linux ආරම්භ කරපු පුද්ගලයා වන Linus Trovalds විසින්මයි.

* හරි , Git කියන්නේ Version Control System එකක්. මොකක්ද Version Control System එකක් කියන්නේ ?? Developer කෙනෙක් මොනව හරි නිර්මාණයක් ( ඇප් එකක් හෝ වෙබ් සයිට් එකක් ) මුලින්ම හදනවා. ඊට පස්සෙ , මේ පළමු Version එකේන් පස්සේ නැවතත් අලුත් Versions නිකුත් කරනවා. එතකොට , මේ Git එකේන් , මේ Versions හරියටම තියා ගන්නවා සහ එසේ වෙනස් වෙන ඒවා Central Repository එකක ගබඩා කරල තියා ගන්නවා. මේ නිසා , අනිකුත් Developersලට එසේ අලුත් වුන Version එකත් එක්ක සහයෝගයේන් කටයුතු කරන්න පුලුවන් සහ ඔවුන්ට අවශ්ය නම් අලුත් Version එක ඩවුන්ලෝඩ් කරන් , තමන්ට අවශ්‍ය වෙනස්කම් කරල , අයේමත් අලුත් Version එකක් Upload කරන්න පුලුවන්.

බොහෝ Developersලගේ කැමතිම Version Control System එක තමයි Git කියන්නේ. මොකද අනිකුත් Version Control System වලට වඩා වාසි ගොඩක් මෙහි තියේන නිසයි. Git වලදි ෆයිල් වෙනස්කම් කිරිම් ඉතාමත්ම කාර්යක්ෂම ලෙස කරන්න පුලුවන් හා ෆයිල් වල නිරවද්‍යතාව ගැන සහතික වෙන්න පුලුවන්.

හරි , අපි කිව්ව Git කියන්නේ දැනට තියේන හොදම Version Control System එකක් කියල. එහම නම් ඇයි GitHub මෙච්චර විශේෂ වෙන්නේ ??

Git කියන්නේ Command-Line Tool එකක්. නමුත් , Git සමග සම්බන්ද සියලු දේ , එක කේන්ද්‍රීයක් වටා ගොඩනැගිල තියේන එකට තමයි GitHub කියන්නේ. මෙහිදි Developersලට තමන්ගේ Projects ගබඩා කරලා , ඒවා ඒ හා සමාන පුද්ගලයින් සමග ජාලගත කරල තියාගන්න පුලුවන්.

මොන දේ කරන්නත් GitHub ගිණුමක් ඕනනේ. ඒ නිසා , මෙතනින් ගිහින් GitHub ගිණුමක් හදාගන්න.

GitHub භාවිතා කරන්න පුද්ගලයන් වැඩිපුර කැමති වුන Features කිපයක් ගැන කතා කරමු.

* Repository (Repo).

Repository කියන වචනේට පහසුවට කියනව Repo එකක් කියලත්. Repository එකක් කියන්නේ , අපේ Project එකට අදාල සියලුම ෆයිල්ස් ගබඩා කරල තියේන තැන. එක Project එකකට , එක Repository එකක් හදන්න පුලුවන් හ ඒ Repository එකට අදාලව වෙනම Link එකක් පවා ලැබෙනවා. ඒ Link එකේන් , ඔයාලට , තමන්ගේ Repository එක ඕන තැනක Share කරන්න පුලුවන්.

* Clone or download.

කලින් කිව්වනේ සියලුම Repository වලට Link එකක් තියේනව කියලා. අන්න , ඒ Link එක බලා ගන්න පුලුවන් Clone or download එක ක්ලික් කරාම.

Project එකක් , අපේ පරිගණකයට ගන්න නම් , ඒ කිව්වේ , අදාල Project එකේ ෆයිල්ස් සියල්ල අපේ පරිගණකයේ ගබඩා කරගන්න නම් , අපට ඒ Project එකට අදාල Repository එක Clone කරගන්න වෙනවා. මේ සදහා , අපට මුලින්ම GitHub අපේ පරිගණකයට ඉන්ස්ටෝල් කරන් ඉන්න ඕන.
GitHub ඔබේ පරිගණකයට මෙතනින් ගිහින් ඩවුන්ලෝඩ් කරගන්න . GitHub ඩවුන්ලෝඩ් කරන් , නිසි පරිරි ඉන්ස්ටෝල් කර ගත්තට පස්සේ , Open in Desktop එක ක්ලික් කරන්න.
දැන් , GitHub Desktop එක Open වෙවි. එතනින් තමන් දිල තියේන තැනට Project ෆයිල්ස් ටික ගබඩා වෙවි.
ඊට පස්සේ , අදාල තැනට ගිහින් , අවශ්‍ය පරිදි වෙනස්කම් කරල , ඒ අදාල තැනදිම Push කරන්නත් පුලුවන්.
එහම නැත්නම් වෙනස්කම් කරල , අවසන් කරල , GitHub Desktop එක Open කරල , ඒම Project එකට අදාල Repository එක Sync කරත් හරි.
ඊට පස්සේ , ඒ Repository එක තියේන අනිත් අයත් , තමන්ගේ GitHub Desktop එකේන් , ඒ අදාල Repository එක Sync කරපු ගමන් , අපි කරපු වෙනස්කම් , එයාගේත් නිර්මාණය වෙනවා.
මොකක් හරි හේතුවක් නිසා , වැරදි දේයක් Push / Sync වුනෝත් , GitHub Desktop එකේ තියේන Revert කියන එක මගින් , ආපසු Project එක තිබ්බ නිවැරදි තැනටම ගන්නත් පුලුවන්.

ඒ වගේම , අපට Project එකක් Clone කරගන්නේ නැතුව , නිකන්ම ඩවුන්ලෝඩ් කරගන්න ඕන නම් , මෙහිම තියේන Download Zip එක භාවිතා කරන්න පුලුවන්.

* Forking a Repository (Repo).

Forking කියල කියන්නේ , ඔබ දැනටමත් පවතින Project එකක් මුලික කරගෙන , අලුත් Project එකක් හදන එකටයි. මෙය Projects හොදින් Develop කර ගැනිමට භාවිතා කල හැකි ඉතාමත්ම හොද Feature එකක්.
ඔයාට දායක වෙන්න අවශ්‍ය Project එකක් හොයා ගත්තොත් , ඔයාට පුලුවන් ඒ Repository එක Fork කරන්න , ඔයාට අවශ්‍ය වෙනස්කම් කරන්න පුලුවන් හා ඊට පස්සේ වෙනස් කරපු Project එක , අලුත් Repository එකක් විධියට නිකුත් කරන්න පුලුවන්.

* Pull Requests.

හිතන්නකෝ , ඔයා Repository එකක් Fork කරල , ඉතාමත්ම හොද වෙනස්කමක් කරල තියේනව. ඉතින් ඔයාට ඕන , එසේ වෙනස් කරපු Project එක , අර ඔරිජිනල් Developersලා පිළිගන්නවට හා එසේ කරපු වෙනස්කම් Official Project / Repository එකටත් යොදා ගන්න. ඔයාට මේ දේවල් කරන්න පුලුවන් Pull Request එකක් නිර්මාණය කිරිම මගින්.
එසේ Pull Request එකක් නිර්මාණය කරාම , ඔරිජිනල් Repository එකේ Developersලට , අපේ වැඩ ගැන බලා ගන්න පුලුවන් හා ඔවුන් කැමති නම් අපේ Pull Requests එක Accept කරල , Official Project එකට දායක වෙන්න අවසරය ලබා දෙන්න පුලුවන්.
අපි Pull Request එකක් දාන සැම අවස්ථාවකදිම , අපට හා ප්‍රධාන Project එකේ Developersලා අතර සන්නිවේදනය කරන්න සුදුසු මාධ්‍යය , GitHub මගින් ලබා දෙනවා.

* Social Networking.

GitHub එකේ ඉන්න සියලුම දෙනාටම , තමන්ට කියල වෙන වෙනම Profile එකක් තියේනව. තමන්ගේ Profile එකේ තමන්ගේ Repositories , අනිකුත් Repository වලට ලබා දුන්නු දායකත්වයන් ආදි සියලුම දේවල් බලා ගන්න පුලුවන්.

යම්කිසි Project එකක තියේන Version එකක් වෙනස් කරද්දි , ඒවා ගැන ප්‍රසිද්ධියේම කතා කරන්න පුලුවන්. මේ නිසා , අපේ Projects වලට ප්‍රවිණයන්ගේන් දායකත්වය ලබා ගත හැකි අතර Project එක ඉදිරියටත් කර ගෙන යාමට උදව් ලබා ගන්නත් පුලුවන්.
නමුත් , GitHub එන්න කලින් , අපේ Projects වලට උදව් ලබා ගන්න පුලුවන් විශ්වාසනිය මාධ්‍යයන් , පුද්ගලයන් සොයන්න සිදුවුනා. මේක ටිකක් අපහසු ක්‍රියාවක්. නමුත් , GitHUb එකේ තියේන Profile එකේන් ඔවුන් කරල තියේන වැඩ ගැන බලල , අපට අවශ්‍ය පුද්ගලයන්ගේන් උදව් ලබා ගන්න පුලුවන්.

* Changelogs.

පුද්ගලයන් කිප දෙනෙක් Project එකකට දායක වෙද්දි , එකිනෙකා කරන වෙනස්කම් මොනවද කියල හරියටම කියන්න ආමාරුයි. නමුත් , GitHub විසින් අපි Repository එකට Push කරන සියලුම වෙනස්කම් Track කරගෙන තියා ගන්නවා. ඒ නිසා , වෙනස් කරේ කවුද , කවද්ද , කොහේද අදාල ෆයිල්ස් ගබඩා කරල තියේන්නේ යනාදි දේවල් ගැන ගැටලුවක් කරගන්න ඕන නැ , ඒ සියල්ලම ඒම අදාල Repository එකේ පෙන්වනවා.

* GitHub එකේ වෙන දේ ගැන කෙටියේන් තේරුම් ගන්න අවශ්‍ය නම් මෙහම හිතන්කෝ. පුද්ගලයන් කිප දෙනෙක් ඉන්න කණ්ඩායමකට Project එකක් ලැබෙනවා. ඉතින් , මේ වගේ කණ්ඩායම් Project එකක් කරද්දි , ගොඩක් වෙලාවට ඒ කණ්ඩායමේ සියලුම දෙනා එකම තැනක ඉදන් කරන තරමට කාර්යක්ෂමතාවය වැඩියි.
නමුත් , එකම වෙලාවේ , එකම තැනක ඉදන් වැඩ කරන්න සියලුම දෙනාට නොහැකි වෙන්න පුලුවන්. අන්න ඒ වගේ , Projects කරද්දි GitHub යොදා ගන්න පුලුවන්.

* මෙහමයි , මුලින්ම GitHub එකේ Repository එකක් නිර්මාණය කරල , තමන්ගේ Project එකේ දැනට කරල තියේන ටික Upload කරල , කණ්ඩායමේ පිරිස් විසින් තමන්ට අදාල කොටස හෝ කොටස් , තමන්ට ඕන වෙලාවක , ඕන තැනක ඉදන් කරල , GitHub එකේ අදාල Repository එකට Push / Sync කරන්න පුලුවන්. කණ්ඩායමේ සිටින , සියලුම දෙනා Push / Sync කරන තරමට Project එක නිර්මාණය වෙනවා. මොකක් හරි හේතුවක් නිසා , වැරදි දේයක් Push / Sync වුනෝත් , GitHub Desktop එකේ තියේන Revert කියන එක මගින් , ආපසු Project එක තිබ්බ නිවැරදි තැනටම ගන්නත් පුලුවන්.

කණ්ඩායමේ ඉන්න සියලුම දෙනා , තමන්ට අදාල කොටස හෝ කොටස් කිපය කරමින් , හරියටම Push / Sync කරල තිබුනෝතින් , සියලුම දෙනාගේ වැඩ අවසන් වෙද්දි , අවසන් සම්පුර්ණ Project එක , GitHub එකේ තියේනවා.
ඒ වගේම කලින් කතා කරපු Features වලින් කියවුන පරිදි , Repository එකට දායක වුන අය විසින් කරපු සියලුම දේවලුත් බලා ගන්න පුලුවන්.

* ඒ වගේම , මේ ඉහලින් කියල තියේන විධියට අවශ්‍ය වෙලාවක , Repository එකක් Fork කරන්න හා අවශ්‍ය නම් Pull Request එකක් වුනත් නිර්මාණය කරන්න පුලුවන්. ඉහලින් කියල තියේන විධියට Repository , Fork , Pull Request වලින් ලබා ගන්න පුලුවන් නියම ප්‍රයෝජනය ගන්න.

* ඒ වගේම , GitHub කියන්නේ Developersලට විතරක්ම තියේන දේයක් නෙමේ. හිතන්නකෝ , කණ්ඩායමක් එකතු වෙලා Word Document එකක් නිතරම වෙනස් කරමින් කටයුතු කරනව කියල. අන්න , ඒ වගේ කණ්ඩායමකට පුලුවන් GitHub එක , තමන්ගේ Version Control System එක විධියට භාවිතා කරන්න. නමුත් , මේ වගේ දේයකට GitHub යොදා ගන්නවට වඩා වෙනත් ක්‍රම තියේන නිසා , එවැනි කණ්ඩායම් ඒවා යොදා ගන්නවා.

හරි , Repository එකක් එහම හදන ආකාරය බලන්න ඕන නම් , මේ පහල විඩියෝ එක බලන්න.

අපි හිතනව , මේ පොස්ට් එකේන් Git ගැන හා GitHub ගැන යම්කිසි දේයක් දැන ගන්න ඇති කියලා. එහනම් , අපි කිව්ව දේවලුත් මතක තියාගෙනම , GitHub සයිට් එකට ගිහින් ගිණුමක් හදන් , තමන්ගේ වැඩ පටන් ගන්න. අවශ්‍ය නම් GitHub Help Document එකත් බලන්න.