"Ngayon sasabihin ko sa iyo ang tungkol sa dalawang pinakasikat na bersyon ng control program: SVN at Git."

"Ang SVN ay gumagana nang humigit-kumulang sa paraang inilarawan ko sa huling aralin. Ang Git ay medyo mas kumplikado, at plano kong talakayin ito nang mas detalyado."

"Maaari mo ba akong bigyan ng mga link sa dokumentasyon para sa SVN at Git?"

"Syempre, saglit lang."

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (ito ay isa lamang obra maestra)

"So, Git ."

"Medyo mas kumplikado ito kaysa sa SVN.  Sa Git, ang bawat user ay may sariling lokal na imbakan bilang karagdagan sa imbakan ng server. "

"So saan ka magco-commit?"

"Ang mga gumagamit ay palaging nangangako sa kanilang lokal na imbakan."

"Ngunit paano ang tungkol sa imbakan ng server?"

"Upang i-synchronize ang mga lokal at server na repository, mayroong mga espesyal na Pull at Push command .

"May dahilan para dito. Minsan ang isang programmer ay kailangang gumawa ng maraming trabaho sa kanyang sariling bahagi, na maaaring may kasamang ilang daang mga commit bago ito maidagdag sa nakabahaging imbakan."

"Upang gawin ito sa SVN, kailangan mong magsimula ng isang hiwalay na sangay, at pagkatapos ay pagsamahin ito sa trunk."

"Sa Git, palagi kang nagko-commit sa lokal na repositoryo, at pagkatapos ay ipadala ang lahat ng pagbabago bilang isang batch sa central repository sa server kapag tapos ka na."

"Ang pamamaraang ito ay maaaring mukhang medyo sobra-sobra kapag nagsusulat ka lamang ng isang maliit na code. Ngunit kapag ang iyong mga gawain ay napakalaki na ang mga ito ay umaabot sa mga linggo, pagkatapos ay naiintindihan mo na hindi mo maaaring isulat ang buong oras na iyon nang hindi gumagawa."

"Bakit hindi ka na lang magtrabaho ng dalawang linggo, at pagkatapos ay i-commit ang iyong mga pagbabago sa server nang isang beses?"

"Well, nag-aalok ang isang version control program ng maraming kaginhawahan."

"Isipin na nag-commit ka araw-araw, at sa ika-10 araw ay natuklasan mo na ang mga pagbabagong ginawa mo sa nakalipas na dalawang araw ay hindi gagana gaya ng pinlano. At gusto mong bumalik sa code na mayroon ka noong ika-8 araw at lapitan ang gawain iba."

"I-rollback mo lang ang mga pagbabagong ginawa sa lokal na repository sa huling dalawang araw at bumalik sa gustong estado. Ito ay kilala bilang isang rollback operation."

"Sinasabi mo sa akin na kaya mo yan?"

"Oo. Bilang karagdagan, dahil nakaimbak ang kasaysayan ng commit, maaari mong malaman kung kailan at bakit ginawa ang isang bagay, at kanino, ang mga nauugnay na feature/bug, at kung aling sampung file ang sabay-sabay na binago bilang bahagi ng gawaing ito."

"Ipagpalagay na sinira ng pag-aayos ng bug ng isang tao ang code ng ibang tao. Maaari mo lang i-roll back ( i-rollback ) ang code at magpatuloy na parang hindi nangyari ang pagbabago."

"OK, maganda iyon. Kumbinsido ako. Maaari mo bang ipakita sa akin ang ilang mga halimbawa na naglalarawan kung paano gumagana ang lahat ng ito?"

"Oo naman."

"Narito kung paano mo i-clone ang central repository sa iyong lokal na computer:"

Mga pangako at sangay - 1

"Kaya, hindi na kailangan ang Checkout operation."

"Oo. At narito ang mga halimbawa ng mga pagpapatakbo ng Push :"

Mga pangako at sangay - 2

"At mga operasyon ng Pull :

Mga pangako at sangay - 3

"Ah. More or less may sense naman."

"Siya nga pala, mayroong isang cool na serbisyo na tinatawag na GitHub."

"Anumang programmer ay maaaring magrehistro doon at lumikha ng kanilang sariling mga Git repository. Iminumungkahi kong mas pamilyar ka dito."

"Narito ang ilang kapaki-pakinabang na link:"

https://githowto.com

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

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

"Tandaan na medyo kaunti ang mga kliyente ng Git."

"Una, mayroong   GitBash , na nagbibigay-daan sa iyong magpasok ng mga text command."

"Pagkatapos ay mayroong TortoiseGit , na isang mahusay na programa na binuo sa Windows Explorer. Hinahayaan ka nitong gumana sa mga file sa isang Git repository nang direkta sa Explorer."

"Sinusuportahan ng IntelliJ IDEA ang Git at hinahayaan kang isagawa ang lahat ng uri ng kumplikadong mga utos sa pamamagitan lamang ng ilang pag-click nang direkta mula sa loob ng kapaligiran."

"So, alin ang dapat kong matutunan?"

"Inirerekomenda ko na kilalanin mo silang lahat."

"Mapapasa ka sa iyong panayam at makakarating sa trabaho. Makakakuha ka ng isang link sa Git, isang pag-login at password — at iyon lang. Pagkatapos ikaw ay mag-isa."

"Ano ang ibig mong sabihin, «sa iyong sarili»?"

"Ang ibig kong sabihin ay mag-isa kang magse-set up ng Git, mag-isa kang kukuha ng kopya ng repositoryo,..."

"At pagkatapos ay kakailanganin mong bumuo at subukang patakbuhin ang proyekto."

"Ang mga tagubilin sa pagbuo ay malamang na nasa repositoryo ng Git, kasama ang dokumentasyon ng proyekto."

"Lalapit sa iyo ang pinuno ng iyong koponan sa gabi at sasabihin,  «Buweno, ano ang nalaman mo sa ngayon?» "

"At sasabihin mo, 'Sinusubukan kong i-set up ang Git dito, ngunit hindi pa ako nagtagumpay. «Hindi mo ako tatanggalin, tama?" "

"O, habang tanghali pa, maaari kang pumunta sa pinuno ng koponan at sabihing,  «In-install ko ang Git, hinila ang proyekto, at nag-browse sa dokumentasyon, ngunit may daan-daang mga file at hindi ko pa naayos ang lahat. Kung saan ang kasalukuyang mga tagubilin sa pagbuo?'» "

"Nararamdaman mo ba ang pagkakaiba?"

"Oo. Sa pangalawang kaso, ako ay isang super rock-star programmer, ngunit sa una, ako ay ilang robo-doofus na hindi man lang alam kung paano mag-pull ng isang proyekto mula sa Git. Sa madaling salita, nabaliw ako. bago pa man ako magsimulang magprograma. Ipagpalagay ko na pagkatapos noon ay hindi na nila ako papayagang magsulat ng code."

"See, sinagot mo ang sarili mong mga tanong. Kaya pag-aralan mo at alamin mo. Walang gagawa nito para sa iyo."

"Hindi mo ba ako tutulungan?"

"Tumulong na ako. Nagtuturo kami dito ng Java, kaso nakalimutan mo na. Sa lahat ng iba, mag-isa ka lang. O para lang sa pag-inom ang ulo mo?"

"Okay, I get it. Salamat, Bilaabo!"