Git ගැන හැමදේම - පළමු කොටස

NEMISIS

Well-known member
  • Nov 13, 2013
    9,506
    15,320
    113
    Colombo
    csv format එකෙන් පුලුවන්. Formula maintain කරන්න බැහැ එහෙම කරාම.
    ඔවු
    CSV කියන්නෙ Comma Separated Values කියන එකනේ, නිකන් ටෙක්ස්ට් ෆයිල් එකක් තියෙන්න කොලම් වැලියු ටික කමා එකකින් වෙන් කරලා, .csv එක්ස්ටෙන්ශන් එකෙන් සේචු කරලා
    Excel වලින් ඕපන් උනාට ෆයිල් එකේ තියන්නෙ නිකන් plane text ෆයිල් එකක්නේ

    තව අලුත් docx/excelx වගේ ෆෝමැට් ඕපන් ෆෝමැට්, ඕක ඇතුලෙ කන්ටෙන්ට් එක තියෙන්න .xml ෆයිල් එකක් විදියට. හැබැයි ඒක xml විදියට ඇක්සස් කරන්න එක්සෙල් ෆයිල් එක එක්ස්ට්‍රෑක්ට් කරන්න ඕනද කොහෙද එහෙම නිසා තමයි ගිට් එකෙන් සම්පූර්ණ එක්සෙල් ෆයිල් එක බයිනරි ෆයිල් එකක් විදියට ඩිටෙක්ට් කරන්න
    git වල pre-commit hook කියලා එකක් තියනවා(commit කරන්න කලින් මොනා හරි ස්ක්‍රිප්ට් එකක් රන් කරන්න පුලුවන් වගේ වැඩක්) ඒකෙන් ෆයිල් එක එක්ස්ට්‍රෑක්ට් කරලා කමිට් කරන්න හදන්න පුලුවන් වෙයිද මන්ද, හැබැයි මේක කම්ප්ලෙක්ස් වැඩක්
     

    IT kolla

    Active member
  • Mar 8, 2022
    167
    166
    43
    ආයුබෝවන් කිරි වැසියෝ හැමෝටම..මේ thread එකෙන් අපි කතා කරන්නේ git කියන්නේ මොකක්ද , එක ඕන වෙන්නේ අයි , සහ එක use කරන්නේ කොහොමද කියන දේවල් ගැන..

    විශේෂයෙන් කියන්ටෝන මේක @HAneo මැතිතුමා ගේ #එකටගොඩයමු මෙහෙයුමට අනුපුරකයක් (supplementary ) විදිහට පලකරන නුලක්..ඒ ගැන හානියෝ මහතාටත් ස්තුති කරන ගමන් අපි වැඩේට බහිමු..

    මොකක්ද git කියන්නේ?

    git කියන්නේ version control system එකක්..ගොඩක් සරලව කිව්වොත් digital file එකක versions manage කරගන්න උදව් වෙන ටූල් එකක් ..

    versions manage කරනවා කියන එක තව ටිකක් පැහැදිලි කරන්න පුලුවන්ද?

    එල..අපි පාවිච්චි කරන ඕනෑම file එකක් අපි change කරනවා නේ..එහෙම file එකකට change එකක් කරාම අන්තිම output එක අර file එකේ version එකක් කියල කියන්නේ..

    උදාහරණයකට අපි හිතමු ඔයාගේ computer එකේ ඔයා sample.txt නමෙන් new Text Document එකක් හදනවා කියල ..ඒක ඒ file එකේ first version එක..

    දැන් ඔයා ඒ file එක open කරල මොනවහරි ටයිප් කරලා save කරනවා..දැන් තියෙන text file එකට අපි කියනවා sample.txt file එකේ second version එක කියලා..ඔයා ආයෙම ඒ file එක edit කරල save කරොත් එතකොට sample.txt file එකේ අලුත් version එකක් තමයි හැදෙන්නේ ..

    git වලින් කරන්නේ මේ විදිහට හැදෙන versions, පිළිවෙලට system එකක track කරලා තියාගන්න එක..එතකොට අපිට file versions අතරේ ඕන ඕන විදිහට මාරු වෙන්න පුළුවන්..

    හරි..එත් මට දැනගන්න පුලුවන්ද ඇත්ත ලෝකෙදි git use වෙන විදිහ ගැන ?

    ok ..දැන් ඔයා හිතන්න ඔයා මොකක්හරි ලොකු software එකක වැඩ කරන කෙනෙක් ..files දහස් ගානක් තියෙන app එකක් ..මේ app එකේ ඔයාට ඕන වෙනවා අලුතින් feature එකක් එකතු කරන්න..ඉතින් ඔයා එකට ඔයාට හරි කියල හිතෙන විදිහට වැඩ දාලා code එකත් ලියනවා කියලා අපි හිතමු..මේ වැඩේ දී files 10ක් 15ක් විතර සෑහෙන change වෙනවා කියලත් හිතමු කෝ ..

    ඔන්න දැන් ඔයා code එක ටිකක් ගහල රෑ වෙලා නිසා edit කරපු files ටික save කරල ide එකත් close කරල නිදාගන්නවා..හැබැයි ඔයාට පහුවෙනිදා උදේ කල්පනා වෙනවා ඒ code එක ලියපු විදිහ sampurna වැරදියි කියල..දැන් මොකද කරන්නේ ..files undo කරන්නත් විදිහක් නෑ ..දැන් ඔයාට සිද්ද වෙනවා කරපු සේරම changes manually බල බලා ain කරන්න..

    හැබැයි එහෙම කරලත් වැඩේ හරියයිද sure නෑ ..මොකද ඔයාට සමහර files වල මොනවද edit වුනේ කියල හරියටම මතක නැති වෙන්න පුළුවන්..එහෙම සීන් එකකදී ඔයාට වැඩ දෙකක් සෙට් වෙනවා ..එකක් ara kalin raa ලියපු code එක undo කරන්න ඕන ..දෙවෙනියට එහෙම undo කරලා හදාගත්ත repo එක ඇත්තටම වැඩ ද කියලත් බලන්න ඕන ..

    හැබැයි ඔයා ඔයාගේ project එක git වලින් manage කරන්න set කරගෙන තිබුන නම් ඔය කිසි කරදරයක් නෑ ..එක command එකෙන් සේරම කරපු changes undo වෙලා project එක තිබ්බ තත්වෙටම එනවා ..:P

    මරු නේ..ඕක use කරන්න පුළුවන් software සීන් එකේ ඉන්න අයට විතරද?

    අපෝ නෑ ..හිතන්න ඔයා novel ලියන කෙනෙක් කියල .. එහෙමත් නැත්නම් latex document එකක් ලියන scientist කෙනෙක් කියල .. ඔය මොන file එක වුනත් git වලින් මන් කලින් කියපු විදිහට track කරගන්න පුලුවන් ..

    එහෙනම් graphic design files,images එහෙමත් track කරන්න පුළුවන් ඇති නේද ?

    අන්න ඒවා නම් බෑ පුතේ.. git වලින් images, .psd files වගේ binary files track කරන එක නම් කරන්න ලේසි වැඩක් නෙවෙයි..documents related ඕන file එකක version manage කරගන්න නම් git පංකාදු පහයි..

    හරි අපි දැන් දන්නවනේ git කියන්නේ මොකක්ද කියලා..අපි practical example එකක් බලමුද දැන් ?

    එළම..සේරටම කලින් මෙන්න මේ tutorial එක බලාගෙන මුලින්ම ඔයාගේ computer එකේ git setup කරගෙන ඉන්ටකෝ :)

    https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

    install කරගත්තට පස්සේ බලන්න ඕනේ අපිට command prompt එකෙන් git access කරන්න පුලුවන්ද කියලා ..ඒකට command prompt එකක් open කරලා git කියලා type කරල enter කරන්න..එතකොට මෙන්න මෙහෙම පටන් ගන්න එකක් වැටෙනවා නම් ඒ කියන්නේ ඔයාගේ computer එකේ git install වෙලා තියෙන්නේ දැන්..



    ඊට පස්සේ ?

    දැන් git install වෙලා නිසා අපෙ වැඩේට බහින්න පුළුවන්..

    මුලින්ම ඔයා කැමති තැනක හදාගන්න folder එකක් කැමති නමකින් ..මන් මගේ macbook එකේ Desktop එකේ හදාගන්නවා GitTest කියල folder එකක් ..ඊලග steps ඔක්කොටම මන් example එක විදිහට use කරන්නේ මේ folder එක ..

    දැන් මේ folder එක ඇතුලේ හදන්න text files කීපයක්...ඒ හදාගත්ත files වල මොන මොනවහරි ලියල save කරන්න..

    හරිද? ඔන්න දැන් අපි ගාව තියෙනව අපේ project එකේ initial version එක..දැන් අපි git වලට කියන්න ඕනේ මේ folder එකේ files වලට ඉස්සරහට කරන changes track කරන්න කියල..

    මේ වැඩේට git ට අපේ project එක සම්බන්ධ information store කරගන්න තැනක් අපි හදල දෙන්න ඕනේ අපේ project එක ඇතුළේ ..ඒක අපි කරන්නේ අපේ project එකේ git initialize කරන එකෙන්. :yes:

    command prompt එකෙන් ඔයාගේ folder එකට ගිහින්, git init ගහලා git initialize කරගන්න පුළුවන්..



    එතකොට එයි මෙහෙම output එකක්.. මේක ආවා කියන්නේ වැඩේ හරි ..

    Initialized empty Git repository in /Users/OpenSourceIsTheWay/Projects/GitTest/.git/

    මේ විදිහට අපිට අපේ project එකට git දාගන්න පුළුවන් ..හැබැයි ඒ මදි ..අපි තෝර ගන්න ඕනේ git ට track කරන්න බාර දෙන්න ඕනේ මොන files ද කියලා..එකට වෙනම command එකක් තියෙනව ..එක තමා git add..

    ඔයාගේ folder එකේ ඉඳන් command prompt එකේ run කරන්න..



    මේ command එකෙන් අපි git ට බාර දෙන්න ඕනේ files ටික තෝරා ගන්නවා..(මෙතෙන්දි නම් අපේ folder එකේ තියෙන සේරම files මන් තෝරා ගන්නවා..dot එකෙන් කියන්නේ folder එකේ තියෙන සේරම තෝරාගන්න කියල )

    මෙහෙම files තෝරාගන්න එකට අපි කියන්නේ stage කරනවා කියල..දැන් අපේ folder එකේ සේරම files තියෙන්නේ staged area එකේ ..

    දැන් අපිට පුළුවන් තෝරා ගත්ත (stage කරපු) files ටික git ට බාර දෙන්න.. එකටත් වෙනම command එකක් තියෙනව..එක තමයි git commit කියන්නේ..

    ඔයාගේ folder එකේ ඉඳන් command prompt එකේ run කරන්න මේ command එක…



    දැන් ඔයාල බලනවා ඇති අර මොකක්ද -m එකක් ගහල කරේ කියලා..අපි git ට files බාර දෙනකොට ඒ බාරදෙන දේවල් ගැන පොඩි විස්තරයක් එක්ක තමයි බාර දෙන්න ඕන..ඒ විස්තරය තමයි අපි -m ගහල “” ඇතුලේ enter කරන්නේ ..

    ඔන්න දැන් අපේ project setup එක හරි …දැන් තමයි git ගේ නියම වැඩ කෑලි ටික පටන් ගන්න යන්නේ ..but සමහර අයට මේ ටිකත් too complex වෙන්න පුළුවන් ..විශේෂයෙන් command prompt එක පාවිච්චි කරලම නැති අයට ..ඒ අයවත් ඇදගෙන යන්න ඕන නිසා අපි අදට මෙතනින් නවත්වමු.. හෙට ත්‍රෙඩ් එකෙන් බලමු git වලින් අපේ project එකේ දාන්න පුළුවන් වැඩ කෑලි මොනවද කියලා..:P

    මේකේ විස්තර කරලා තියෙන දේවල් වල අපැහැදිලි තැනක් හරි ඉස්සරහට tutorials improve කරන්න suggestions හරි තියෙනවා නම් අනිවාර්යෙන් ම comments වලින් කියන්න :)

    හැමෝටම සුබ දවසක් 🙏

    #එකටගොඩයමු
    Thank you @siri_ayya. Sehenna watinwa
     
    • Love
    Reactions: HAneo and siri_ayya

    thrindo

    Active member
  • May 18, 2022
    331
    226
    43
    Local commits වල commit කරපු වෙලාව තියෙනව නේ.. ඒ නිසා මාසේ අන්තිමට push කරත් actvity overview එකේ හැමදාම commit කරා කියල පෙන්නන්නේ..

    ඔයා මාසෙට පාරක් push කරනවා කියන්නෙ ඕක ඔයා විතරක් වැඩ කරන ප්‍රොජෙක්ට් එකක් වෙන්න ඕන.. එහෙම වුණත් දවසට සැරයක් හරි push කරන එක තමා හොඳ.. මොකද ඔයාගේ changes වල latest copy එකක් හැමතිස්සෙම remotely available නේ එතකොට..
    Thank you(y)👍
     

    HAneo

    Well-known member
  • Jan 30, 2007
    12,971
    29,142
    113
    Homagama
    මචන් එක්සෙල් ෆයිල් පුලුවන්
    ප්‍රශ්නෙ තියෙන්න කෝඩ් වගේ merge කරන්න බැහැ. මොකද ඇතුලෙ තියන කන්ටෙන්ට් එක බලලා අපිට merge කරන්න සහ කන්ෆ්ලික්ට් රිසෝල්ව් කරන්න බැරි නිසා
    තනි කෙනෙක්ට එක්සෙල් ෆයිල් එකක චේන්ජස් වර්ශන් කරගන්න කිසිම අවුලක් නැතිව ගිට් යූස් කරන්න පුලුවන්

    කීප දෙනෙක්ට උනත් කරන්න පුලුවන් හැබැයි අපිට මැනුවලි කන්ෆ්ලික්ට් රිසෝල්ව් කරන්න බැරි නිසා දෙතුන් දෙනෙක් එක සැරේ එඩිට් කරලා කන්ෆ්ලික්ල් එකක් ආවොතින් කාගෙ හරි චේන්ජස් නැති වෙන විදියට merge කරන්න වෙනවා
    :love: :love: :love: :love:
    එක නිසා තමා මචන් එක්සෙල් ඇතුලෙන් වර්ෂන් එකක් මේන්ටේන් කරන්නේ. එක සුපිරි හැබැයි
     

    ChamodhK

    Well-known member
  • May 22, 2022
    1,439
    1,692
    113
    20
    ආයුබෝවන් කිරි වැසියෝ හැමෝටම..මේ thread එකෙන් අපි කතා කරන්නේ git කියන්නේ මොකක්ද , එක ඕන වෙන්නේ අයි , සහ එක use කරන්නේ කොහොමද කියන දේවල් ගැන..

    විශේෂයෙන් කියන්ටෝන මේක @HAneo මැතිතුමා ගේ #එකටගොඩයමු මෙහෙයුමට අනුපුරකයක් (supplementary ) විදිහට පලකරන නුලක්..ඒ ගැන හානියෝ මහතාටත් ස්තුති කරන ගමන් අපි වැඩේට බහිමු..

    මොකක්ද git කියන්නේ?

    git කියන්නේ version control system එකක්..ගොඩක් සරලව කිව්වොත් digital file එකක versions manage කරගන්න උදව් වෙන ටූල් එකක් ..

    versions manage කරනවා කියන එක තව ටිකක් පැහැදිලි කරන්න පුලුවන්ද?

    එල..අපි පාවිච්චි කරන ඕනෑම file එකක් අපි change කරනවා නේ..එහෙම file එකකට change එකක් කරාම අන්තිම output එක අර file එකේ version එකක් කියල කියන්නේ..

    උදාහරණයකට අපි හිතමු ඔයාගේ computer එකේ ඔයා sample.txt නමෙන් new Text Document එකක් හදනවා කියල ..ඒක ඒ file එකේ first version එක..

    දැන් ඔයා ඒ file එක open කරල මොනවහරි ටයිප් කරලා save කරනවා..දැන් තියෙන text file එකට අපි කියනවා sample.txt file එකේ second version එක කියලා..ඔයා ආයෙම ඒ file එක edit කරල save කරොත් එතකොට sample.txt file එකේ අලුත් version එකක් තමයි හැදෙන්නේ ..

    git වලින් කරන්නේ මේ විදිහට හැදෙන versions, පිළිවෙලට system එකක track කරලා තියාගන්න එක..එතකොට අපිට file versions අතරේ ඕන ඕන විදිහට මාරු වෙන්න පුළුවන්..

    හරි..එත් මට දැනගන්න පුලුවන්ද ඇත්ත ලෝකෙදි git use වෙන විදිහ ගැන ?

    ok ..දැන් ඔයා හිතන්න ඔයා මොකක්හරි ලොකු software එකක වැඩ කරන කෙනෙක් ..files දහස් ගානක් තියෙන app එකක් ..මේ app එකේ ඔයාට ඕන වෙනවා අලුතින් feature එකක් එකතු කරන්න..ඉතින් ඔයා එකට ඔයාට හරි කියල හිතෙන විදිහට වැඩ දාලා code එකත් ලියනවා කියලා අපි හිතමු..මේ වැඩේ දී files 10ක් 15ක් විතර සෑහෙන change වෙනවා කියලත් හිතමු කෝ ..

    ඔන්න දැන් ඔයා code එක ටිකක් ගහල රෑ වෙලා නිසා edit කරපු files ටික save කරල ide එකත් close කරල නිදාගන්නවා..හැබැයි ඔයාට පහුවෙනිදා උදේ කල්පනා වෙනවා ඒ code එක ලියපු විදිහ sampurna වැරදියි කියල..දැන් මොකද කරන්නේ ..files undo කරන්නත් විදිහක් නෑ ..දැන් ඔයාට සිද්ද වෙනවා කරපු සේරම changes manually බල බලා ain කරන්න..

    හැබැයි එහෙම කරලත් වැඩේ හරියයිද sure නෑ ..මොකද ඔයාට සමහර files වල මොනවද edit වුනේ කියල හරියටම මතක නැති වෙන්න පුළුවන්..එහෙම සීන් එකකදී ඔයාට වැඩ දෙකක් සෙට් වෙනවා ..එකක් ara kalin raa ලියපු code එක undo කරන්න ඕන ..දෙවෙනියට එහෙම undo කරලා හදාගත්ත repo එක ඇත්තටම වැඩ ද කියලත් බලන්න ඕන ..

    හැබැයි ඔයා ඔයාගේ project එක git වලින් manage කරන්න set කරගෙන තිබුන නම් ඔය කිසි කරදරයක් නෑ ..එක command එකෙන් සේරම කරපු changes undo වෙලා project එක තිබ්බ තත්වෙටම එනවා ..:P

    මරු නේ..ඕක use කරන්න පුළුවන් software සීන් එකේ ඉන්න අයට විතරද?

    අපෝ නෑ ..හිතන්න ඔයා novel ලියන කෙනෙක් කියල .. එහෙමත් නැත්නම් latex document එකක් ලියන scientist කෙනෙක් කියල .. ඔය මොන file එක වුනත් git වලින් මන් කලින් කියපු විදිහට track කරගන්න පුලුවන් ..

    එහෙනම් graphic design files,images එහෙමත් track කරන්න පුළුවන් ඇති නේද ?

    අන්න ඒවා නම් බෑ පුතේ.. git වලින් images, .psd files වගේ binary files track කරන එක නම් කරන්න ලේසි වැඩක් නෙවෙයි..documents related ඕන file එකක version manage කරගන්න නම් git පංකාදු පහයි..

    හරි අපි දැන් දන්නවනේ git කියන්නේ මොකක්ද කියලා..අපි practical example එකක් බලමුද දැන් ?

    එළම..සේරටම කලින් මෙන්න මේ tutorial එක බලාගෙන මුලින්ම ඔයාගේ computer එකේ git setup කරගෙන ඉන්ටකෝ :)

    https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

    install කරගත්තට පස්සේ බලන්න ඕනේ අපිට command prompt එකෙන් git access කරන්න පුලුවන්ද කියලා ..ඒකට command prompt එකක් open කරලා git කියලා type කරල enter කරන්න..එතකොට මෙන්න මෙහෙම පටන් ගන්න එකක් වැටෙනවා නම් ඒ කියන්නේ ඔයාගේ computer එකේ git install වෙලා තියෙන්නේ දැන්..



    ඊට පස්සේ ?

    දැන් git install වෙලා නිසා අපෙ වැඩේට බහින්න පුළුවන්..

    මුලින්ම ඔයා කැමති තැනක හදාගන්න folder එකක් කැමති නමකින් ..මන් මගේ macbook එකේ Desktop එකේ හදාගන්නවා GitTest කියල folder එකක් ..ඊලග steps ඔක්කොටම මන් example එක විදිහට use කරන්නේ මේ folder එක ..

    දැන් මේ folder එක ඇතුලේ හදන්න text files කීපයක්...ඒ හදාගත්ත files වල මොන මොනවහරි ලියල save කරන්න..

    හරිද? ඔන්න දැන් අපි ගාව තියෙනව අපේ project එකේ initial version එක..දැන් අපි git වලට කියන්න ඕනේ මේ folder එකේ files වලට ඉස්සරහට කරන changes track කරන්න කියල..

    මේ වැඩේට git ට අපේ project එක සම්බන්ධ information store කරගන්න තැනක් අපි හදල දෙන්න ඕනේ අපේ project එක ඇතුළේ ..ඒක අපි කරන්නේ අපේ project එකේ git initialize කරන එකෙන්. :yes:

    command prompt එකෙන් ඔයාගේ folder එකට ගිහින්, git init ගහලා git initialize කරගන්න පුළුවන්..



    එතකොට එයි මෙහෙම output එකක්.. මේක ආවා කියන්නේ වැඩේ හරි ..

    Initialized empty Git repository in /Users/OpenSourceIsTheWay/Projects/GitTest/.git/

    මේ විදිහට අපිට අපේ project එකට git දාගන්න පුළුවන් ..හැබැයි ඒ මදි ..අපි තෝර ගන්න ඕනේ git ට track කරන්න බාර දෙන්න ඕනේ මොන files ද කියලා..එකට වෙනම command එකක් තියෙනව ..එක තමා git add..

    ඔයාගේ folder එකේ ඉඳන් command prompt එකේ run කරන්න..



    මේ command එකෙන් අපි git ට බාර දෙන්න ඕනේ files ටික තෝරා ගන්නවා..(මෙතෙන්දි නම් අපේ folder එකේ තියෙන සේරම files මන් තෝරා ගන්නවා..dot එකෙන් කියන්නේ folder එකේ තියෙන සේරම තෝරාගන්න කියල )

    මෙහෙම files තෝරාගන්න එකට අපි කියන්නේ stage කරනවා කියල..දැන් අපේ folder එකේ සේරම files තියෙන්නේ staged area එකේ ..

    දැන් අපිට පුළුවන් තෝරා ගත්ත (stage කරපු) files ටික git ට බාර දෙන්න.. එකටත් වෙනම command එකක් තියෙනව..එක තමයි git commit කියන්නේ..

    ඔයාගේ folder එකේ ඉඳන් command prompt එකේ run කරන්න මේ command එක…



    දැන් ඔයාල බලනවා ඇති අර මොකක්ද -m එකක් ගහල කරේ කියලා..අපි git ට files බාර දෙනකොට ඒ බාරදෙන දේවල් ගැන පොඩි විස්තරයක් එක්ක තමයි බාර දෙන්න ඕන..ඒ විස්තරය තමයි අපි -m ගහල “” ඇතුලේ enter කරන්නේ ..

    ඔන්න දැන් අපේ project setup එක හරි …දැන් තමයි git ගේ නියම වැඩ කෑලි ටික පටන් ගන්න යන්නේ ..but සමහර අයට මේ ටිකත් too complex වෙන්න පුළුවන් ..විශේෂයෙන් command prompt එක පාවිච්චි කරලම නැති අයට ..ඒ අයවත් ඇදගෙන යන්න ඕන නිසා අපි අදට මෙතනින් නවත්වමු.. හෙට ත්‍රෙඩ් එකෙන් බලමු git වලින් අපේ project එකේ දාන්න පුළුවන් වැඩ කෑලි මොනවද කියලා..:P

    මේකේ විස්තර කරලා තියෙන දේවල් වල අපැහැදිලි තැනක් හරි ඉස්සරහට tutorials improve කරන්න suggestions හරි තියෙනවා නම් අනිවාර්යෙන් ම comments වලින් කියන්න :)

    හැමෝටම සුබ දවසක් 🙏

    #එකටගොඩයමු
    TFS
     
    • Like
    Reactions: S_M_S

    NiyamaSinhalaya

    Well-known member
  • Jul 17, 2008
    8,425
    9,032
    113
    පෘථිවිය
    ආයුබෝවන් කිරි වැසියෝ හැමෝටම..මේ thread එකෙන් අපි කතා කරන්නේ git කියන්නේ මොකක්ද , එක ඕන වෙන්නේ අයි , සහ එක use කරන්නේ කොහොමද කියන දේවල් ගැන..

    විශේෂයෙන් කියන්ටෝන මේක @HAneo මැතිතුමා ගේ #එකටගොඩයමු මෙහෙයුමට අනුපුරකයක් (supplementary ) විදිහට පලකරන නුලක්..ඒ ගැන හානියෝ මහතාටත් ස්තුති කරන ගමන් අපි වැඩේට බහිමු..

    මොකක්ද git කියන්නේ?

    git කියන්නේ version control system එකක්..ගොඩක් සරලව කිව්වොත් digital file එකක versions manage කරගන්න උදව් වෙන ටූල් එකක් ..

    versions manage කරනවා කියන එක තව ටිකක් පැහැදිලි කරන්න පුලුවන්ද?

    එල..අපි පාවිච්චි කරන ඕනෑම file එකක් අපි change කරනවා නේ..එහෙම file එකකට change එකක් කරාම අන්තිම output එක අර file එකේ version එකක් කියල කියන්නේ..

    උදාහරණයකට අපි හිතමු ඔයාගේ computer එකේ ඔයා sample.txt නමෙන් new Text Document එකක් හදනවා කියල ..ඒක ඒ file එකේ first version එක..

    දැන් ඔයා ඒ file එක open කරල මොනවහරි ටයිප් කරලා save කරනවා..දැන් තියෙන text file එකට අපි කියනවා sample.txt file එකේ second version එක කියලා..ඔයා ආයෙම ඒ file එක edit කරල save කරොත් එතකොට sample.txt file එකේ අලුත් version එකක් තමයි හැදෙන්නේ ..

    git වලින් කරන්නේ මේ විදිහට හැදෙන versions, පිළිවෙලට system එකක track කරලා තියාගන්න එක..එතකොට අපිට file versions අතරේ ඕන ඕන විදිහට මාරු වෙන්න පුළුවන්..

    හරි..එත් මට දැනගන්න පුලුවන්ද ඇත්ත ලෝකෙදි git use වෙන විදිහ ගැන ?

    ok ..දැන් ඔයා හිතන්න ඔයා මොකක්හරි ලොකු software එකක වැඩ කරන කෙනෙක් ..files දහස් ගානක් තියෙන app එකක් ..මේ app එකේ ඔයාට ඕන වෙනවා අලුතින් feature එකක් එකතු කරන්න..ඉතින් ඔයා එකට ඔයාට හරි කියල හිතෙන විදිහට වැඩ දාලා code එකත් ලියනවා කියලා අපි හිතමු..මේ වැඩේ දී files 10ක් 15ක් විතර සෑහෙන change වෙනවා කියලත් හිතමු කෝ ..

    ඔන්න දැන් ඔයා code එක ටිකක් ගහල රෑ වෙලා නිසා edit කරපු files ටික save කරල ide එකත් close කරල නිදාගන්නවා..හැබැයි ඔයාට පහුවෙනිදා උදේ කල්පනා වෙනවා ඒ code එක ලියපු විදිහ sampurna වැරදියි කියල..දැන් මොකද කරන්නේ ..files undo කරන්නත් විදිහක් නෑ ..දැන් ඔයාට සිද්ද වෙනවා කරපු සේරම changes manually බල බලා ain කරන්න..

    හැබැයි එහෙම කරලත් වැඩේ හරියයිද sure නෑ ..මොකද ඔයාට සමහර files වල මොනවද edit වුනේ කියල හරියටම මතක නැති වෙන්න පුළුවන්..එහෙම සීන් එකකදී ඔයාට වැඩ දෙකක් සෙට් වෙනවා ..එකක් ara kalin raa ලියපු code එක undo කරන්න ඕන ..දෙවෙනියට එහෙම undo කරලා හදාගත්ත repo එක ඇත්තටම වැඩ ද කියලත් බලන්න ඕන ..

    හැබැයි ඔයා ඔයාගේ project එක git වලින් manage කරන්න set කරගෙන තිබුන නම් ඔය කිසි කරදරයක් නෑ ..එක command එකෙන් සේරම කරපු changes undo වෙලා project එක තිබ්බ තත්වෙටම එනවා ..:P

    මරු නේ..ඕක use කරන්න පුළුවන් software සීන් එකේ ඉන්න අයට විතරද?

    අපෝ නෑ ..හිතන්න ඔයා novel ලියන කෙනෙක් කියල .. එහෙමත් නැත්නම් latex document එකක් ලියන scientist කෙනෙක් කියල .. ඔය මොන file එක වුනත් git වලින් මන් කලින් කියපු විදිහට track කරගන්න පුලුවන් ..

    එහෙනම් graphic design files,images එහෙමත් track කරන්න පුළුවන් ඇති නේද ?

    අන්න ඒවා නම් බෑ පුතේ.. git වලින් images, .psd files වගේ binary files track කරන එක නම් කරන්න ලේසි වැඩක් නෙවෙයි..documents related ඕන file එකක version manage කරගන්න නම් git පංකාදු පහයි..

    හරි අපි දැන් දන්නවනේ git කියන්නේ මොකක්ද කියලා..අපි practical example එකක් බලමුද දැන් ?

    එළම..සේරටම කලින් මෙන්න මේ tutorial එක බලාගෙන මුලින්ම ඔයාගේ computer එකේ git setup කරගෙන ඉන්ටකෝ :)

    https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

    install කරගත්තට පස්සේ බලන්න ඕනේ අපිට command prompt එකෙන් git access කරන්න පුලුවන්ද කියලා ..ඒකට command prompt එකක් open කරලා git කියලා type කරල enter කරන්න..එතකොට මෙන්න මෙහෙම පටන් ගන්න එකක් වැටෙනවා නම් ඒ කියන්නේ ඔයාගේ computer එකේ git install වෙලා තියෙන්නේ දැන්..



    ඊට පස්සේ ?

    දැන් git install වෙලා නිසා අපෙ වැඩේට බහින්න පුළුවන්..

    මුලින්ම ඔයා කැමති තැනක හදාගන්න folder එකක් කැමති නමකින් ..මන් මගේ macbook එකේ Desktop එකේ හදාගන්නවා GitTest කියල folder එකක් ..ඊලග steps ඔක්කොටම මන් example එක විදිහට use කරන්නේ මේ folder එක ..

    දැන් මේ folder එක ඇතුලේ හදන්න text files කීපයක්...ඒ හදාගත්ත files වල මොන මොනවහරි ලියල save කරන්න..

    හරිද? ඔන්න දැන් අපි ගාව තියෙනව අපේ project එකේ initial version එක..දැන් අපි git වලට කියන්න ඕනේ මේ folder එකේ files වලට ඉස්සරහට කරන changes track කරන්න කියල..

    මේ වැඩේට git ට අපේ project එක සම්බන්ධ information store කරගන්න තැනක් අපි හදල දෙන්න ඕනේ අපේ project එක ඇතුළේ ..ඒක අපි කරන්නේ අපේ project එකේ git initialize කරන එකෙන්. :yes:

    command prompt එකෙන් ඔයාගේ folder එකට ගිහින්, git init ගහලා git initialize කරගන්න පුළුවන්..



    එතකොට එයි මෙහෙම output එකක්.. මේක ආවා කියන්නේ වැඩේ හරි ..

    Initialized empty Git repository in /Users/OpenSourceIsTheWay/Projects/GitTest/.git/

    මේ විදිහට අපිට අපේ project එකට git දාගන්න පුළුවන් ..හැබැයි ඒ මදි ..අපි තෝර ගන්න ඕනේ git ට track කරන්න බාර දෙන්න ඕනේ මොන files ද කියලා..එකට වෙනම command එකක් තියෙනව ..එක තමා git add..

    ඔයාගේ folder එකේ ඉඳන් command prompt එකේ run කරන්න..



    මේ command එකෙන් අපි git ට බාර දෙන්න ඕනේ files ටික තෝරා ගන්නවා..(මෙතෙන්දි නම් අපේ folder එකේ තියෙන සේරම files මන් තෝරා ගන්නවා..dot එකෙන් කියන්නේ folder එකේ තියෙන සේරම තෝරාගන්න කියල )

    මෙහෙම files තෝරාගන්න එකට අපි කියන්නේ stage කරනවා කියල..දැන් අපේ folder එකේ සේරම files තියෙන්නේ staged area එකේ ..

    දැන් අපිට පුළුවන් තෝරා ගත්ත (stage කරපු) files ටික git ට බාර දෙන්න.. එකටත් වෙනම command එකක් තියෙනව..එක තමයි git commit කියන්නේ..

    ඔයාගේ folder එකේ ඉඳන් command prompt එකේ run කරන්න මේ command එක…



    දැන් ඔයාල බලනවා ඇති අර මොකක්ද -m එකක් ගහල කරේ කියලා..අපි git ට files බාර දෙනකොට ඒ බාරදෙන දේවල් ගැන පොඩි විස්තරයක් එක්ක තමයි බාර දෙන්න ඕන..ඒ විස්තරය තමයි අපි -m ගහල “” ඇතුලේ enter කරන්නේ ..

    ඔන්න දැන් අපේ project setup එක හරි …දැන් තමයි git ගේ නියම වැඩ කෑලි ටික පටන් ගන්න යන්නේ ..but සමහර අයට මේ ටිකත් too complex වෙන්න පුළුවන් ..විශේෂයෙන් command prompt එක පාවිච්චි කරලම නැති අයට ..ඒ අයවත් ඇදගෙන යන්න ඕන නිසා අපි අදට මෙතනින් නවත්වමු.. හෙට ත්‍රෙඩ් එකෙන් බලමු git වලින් අපේ project එකේ දාන්න පුළුවන් වැඩ කෑලි මොනවද කියලා..:P

    මේකේ විස්තර කරලා තියෙන දේවල් වල අපැහැදිලි තැනක් හරි ඉස්සරහට tutorials improve කරන්න suggestions හරි තියෙනවා නම් අනිවාර්යෙන් ම comments වලින් කියන්න :)

    හැමෝටම සුබ දවසක් 🙏

    #එකටගොඩයමු
    GIT එකෙන් තියෙන FILE එකක් අරගෙන වැඩක් කරනවා කියමු
    දැන් ඒ FILE එකම තව කෙනෙක්ට BRANCH එකක් ඇරලා දෙනවා
    එතකොට පලවෙනියෙන් දුන්න කෙනා වැඩේ ඉවරවෙලා දෙනවා
    පස්සේ ටික දවසකින් දෙවනියට ගත්ත FILE එකත් දෙනවා
    දැන් මෙතැන පළවෙනියට ගත්ත එකා ගේ CHANGES නැහැ
    කොහොමද දැන් මේ දෙක MERGE කරන්නේ?