„Astăzi am să vă povestesc despre cele mai populare două programe de control al versiunilor: SVN și Git.”

„SVN funcționează aproximativ așa cum am descris în ultima lecție. Git este puțin mai complicat și plănuiesc să-l discut mai detaliat.”

„Îmi puteți da link-uri către documentația pentru SVN și Git?”

— Desigur, doar o secundă.

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

https://githowto.com  (aceasta este pur și simplu o capodopera)

— Deci, Git .

„Este puțin mai complicat decât SVN.  Cu Git, fiecare utilizator are propriul său depozit local, pe lângă depozitul de server.

"Deci unde te angajezi?"

„Utilizatorii se angajează întotdeauna în depozitul lor local.”

„Dar cum rămâne cu depozitul de server?”

„Pentru a sincroniza depozitele locale și ale serverului, există comenzi speciale Pull și Push .

„Există un motiv pentru asta. Uneori, un programator trebuie să facă multă muncă pe cont propriu, ceea ce poate implica câteva sute de comiteri înainte de a putea fi adăugat la depozitul partajat.”

„Pentru a face acest lucru în SVN, ar trebui să începeți o ramură separată și apoi să o îmbinați cu trunchiul”.

„Cu Git, pur și simplu vă angajați întotdeauna în depozitul local și apoi trimiteți toate modificările ca lot către depozitul central de pe server când ați terminat.”

„Această metodă poate părea puțin excesivă atunci când scrii doar un mic cod. Dar când sarcinile tale sunt atât de mari încât se întind pe săptămâni, atunci înțelegi că nu poți să scrii tot timpul fără să te angajezi.”

„De ce nu poți să lucrezi doar două săptămâni și apoi să-ți faci modificările pe server o dată?”

— Ei bine, un program de control al versiunilor oferă o mulțime de facilități.

„Imaginați-vă că vă angajați în fiecare zi, iar în a 10-a zi descoperiți că modificările pe care le-ați făcut în ultimele două zile nu vor funcționa conform planului. Și doriți să reveniți la codul pe care l-ați avut în a 8-a zi și să abordați sarcina diferit."

„Pur și simplu derulați înapoi modificările făcute în depozitul local în ultimele două zile și reveniți la starea dorită. Aceasta este cunoscută sub numele de operațiune de rollback .”

— Îmi spui că poți face asta?

"Da. În plus, pentru că istoricul de comitere este stocat, puteți afla când și de ce a fost comis ceva și de către cine, caracteristicile/bugurile relevante și care zece fișiere au fost modificate simultan ca parte a acestei lucrări."

„Să presupunem că remedierea erorilor cuiva rupe codul altcuiva. Puteți pur și simplu să derulați înapoi ( rula înapoi ) codul și să continuați ca și cum schimbarea nu s-ar fi produs niciodată.”

"OK, asta e tare. Sunt convins. Îmi poți arăta câteva exemple care ilustrează cum funcționează toate acestea?"

"Sigur."

„Iată cum clonați depozitul central pe computerul local:”

Angajări și ramuri - 1

„Deci, operațiunea Checkout nu mai este necesară.”

"Da. Și iată exemple de operațiuni Push :"

Angajări și ramuri - 2

„Și operațiuni de tragere :

Angajări și ramuri - 3

— Ah. Asta are mai mult sau mai puţin sens.

„Apropo, există un serviciu grozav numit GitHub”.

„Orice programator se poate înregistra acolo și își poate crea propriile depozite Git. Vă sugerez să vă familiarizați mai bine cu el.”

„Iată câteva link-uri utile:”

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

„Rețineți că există destul de mulți clienți Git.”

„În primul rând, există   GitBash , care vă permite să introduceți comenzi text.”

„Apoi mai este TortoiseGit , care este un program bun încorporat în Windows Explorer. Vă permite să lucrați cu fișiere dintr-un depozit Git direct în Explorer.”

„IntelliJ IDEA acceptă Git și vă permite să executați tot felul de comenzi complexe cu doar câteva clicuri direct din mediu.”

„Deci, pe care ar trebui să învăț?”

„Îți recomand să le cunoști pe toate”.

„Îți vei trece interviul și vei ajunge la serviciu. Vei primi un link către Git, o autentificare și o parolă – și atât. Apoi ești singur.”

„Ce vrei să spui, „pe cont propriu”?”

„Vreau să spun că vei configura Git singur, vei trage singur o copie a depozitului,…”

„Și atunci va trebui să construiți și să încercați să rulați proiectul”.

„Instrucțiunile de construire vor fi, de asemenea, cel mai probabil în depozitul Git, împreună cu documentația proiectului.”

„Conducătorul echipei tale va veni la tine seara și va spune:  „Ei bine, ce ați înțeles până acum?” "

„Și vei spune: „Încerc să configurez Git aici, dar nu am avut încă niciun succes. „Nu o să mă concediezi, nu?” "

„Sau, cât este încă prânz, poți să mergi la șeful echipei și să spui:  „Am instalat Git, am scos proiectul și am răsfoit documentația, dar există sute de fișiere și încă nu am rezolvat totul. Unde sunt instrucțiunile de construcție curente?'» "

— Simți diferența?

„Da. În al doilea caz, sunt un programator super rock-star, dar în primul, sunt un robo-doofus care nici măcar nu știe să scoată un proiect din Git. Cu alte cuvinte, am dat-o năvală. înainte de a începe să programez. Presupun că după aceea nici măcar nu m-au lăsat să scriu cod."

"Vezi, ți-ai răspuns la întrebările tale. Așa că studiază și dă-ți seama. Nimeni nu o va face pentru tine."

— N-ai de gând să mă ajuți?

"Am ajutat deja. Predăm Java aici, în caz că ai uitat. Pentru orice altceva, ești singur. Sau capul tău e doar pentru băutură?"

"Bine, am înțeles. Mulțumesc, Bilaabo!"