Mi-a trebuit să învăț recent Git elementele de bază ale mai multor angajați care studiază doar programarea și încearcă să lucreze. Privind articolele de pe Internet pentru începători, am dat peste faptul că majoritatea dintre ei despre cum să folosească consola Git sau despre nevoia și avantajul său față de alte sisteme similare. Nou-venitul nu este, de obicei, foarte puternic în toate aceste chestiuni. Cred că el, pentru început, și știu toate acestea nu este necesar. La urma urmei, puteți utiliza Git pentru proiectele dvs. și aflați toate farmecele sale împreună cu programarea învățării. Dar, am foarte recomandat să luați acest articol ca articol introductiv și în viitorul studiu Git în detaliu.
Un plan mic de ceea ce vom face:
- Creați un depozit pe Bitbucket.
- Clonarea depozitului (adăugându-l la SmartGit).
- Crearea comitetelor.
- Renunțați la modificări.
- Crearea de sucursale.
- Împingerea ramificațiilor pe un depozit la distanță (ramificații ramificate pe un server la distanță).
- Fuziunea ramurilor.
Înclinăm depozitul folosind SmartGit. Să luăm o legătură cu depozitul nostru:
Acum începeți SmartGit, selectați "Project" - "Clone" (sau Ctrl + Alt + O) și completați câmpurile necesare:
Sistemul va cere numele de utilizator și parola de la Bitbucket:
În următoarea fereastră, există două opțiuni pentru clonarea "Includeți submodule" și "Fetch all Heads and Tags". Git permite ca modulele de aplicații individuale să fie stocate în diferite depozite. Dacă bifați opțiunea "Includeți submodule" - SmartGit va încărca automat toate modulele. Dacă bifați opțiunea "Fetch all Heads and Tags", SmartGit după descărcarea folderului proiectului descarcă toate ramurile și etichetele pentru acest depozit:
În plus, este foarte simplu - este necesar să alegeți un director în care să se cloneze depozitul:
Următoarea fereastră este numele proiectului în SmartGit:
Dacă ați clonat un depozit gol (ca în acest articol), veți vedea următoarea fereastră:
Mergem mai departe. Creați un comit. Ce este un comit? Aceasta este de stabilire a modificărilor. Fiecare cometă "își amintește" ce ați schimbat și în orice moment puteți reveni la starea anterioară a fișierelor. Vă sfătuiesc după orice schimbare semnificativă, de exemplu, fixarea unui bug într-o funcție, efectuarea unei comitete. Pentru a crea o comit, trebuie să schimbi ceva în proiect. Adăugați câteva fișiere în dosarul proiectului:
Acum puteți vedea modificările proiectului nostru în SmartGit:
Selectați ambele fișiere și faceți mai întâi clic pe "Stage", apoi pe "Commit". De ce trebuie să apăs pe "Stage"? Butonul "Stage" adaugă fișierele selectate la indexul curent. Dacă doriți să creați un fișier pentru două fișiere și să îl modificați, să spunem 5, selectați doar aceste două fișiere, apăsați pe "Stage", care le adaugă în index și după "Commit". Astfel, numai cele două fișiere selectate vor intra în comit.
Apoi faceți clic pe butonul "Comandă". Butonul de comandă Push »face același lucru, dar, de asemenea, împinge schimbările (inundate) la depozitul de la distanță (în cazul nostru BitBucket). Nu face asta încă. Prin împingere vom merge mai departe. Mai jos, în lista de sucursale, apare o filială locală "master". Aceasta este ramura principală a codului aplicației. Care sunt ramurile, îți voi spune mai târziu. Și acum vom face ceva cu proiectul nostru, iar apoi vom relua schimbările. Voi șterge fișierul readme.txt, editează fișierul index.php și adaugă un nou fișier confic.cfg:
Și acum vom reveni la schimbare după comitet. Să mergem la Jurnal:
Alegeți cometa la care doriți să reveniți și apăsați pe "Resetare":
În fereastra următoare suntem rugați să alegeți ce "Resetare" dorim să facem:
Îți voi explica. Rețineți că atunci când creați o comit, mai întâi adăugați fișierele în index (etapă). Acest lucru vă permite să criptați numai fișierele indexate. Resetarea soft resetare numai comitetele. Indicele și modificările fizice ale fișierelor rămân. Funcția de resetare mixtă funcționează la fel ca soft-ul, dar în același timp elimină indexul fișierelor. Rezoluția rigidă elimină comitetele, indexul și modificările fizice din fișiere. Folosiți cu grijă resetarea hard, ceea ce nu ar elimina în mod accidental inutil.
Am făcut o resetare grea pentru claritate:
După cum puteți vedea, toate modificările din fișiere au dispărut, sau mai degrabă totul a revenit la starea primei comitete.
Acum, puțin despre crearea ramurilor. De ce sunt necesare? Ramura vă permite să salvați starea actuală a codului și să experimentați. De exemplu, scrieți un nou modul. Este logic să faceți acest lucru într-o ramură separată. Seful solicită și spune că în proiectul de bug-uri și de urgență trebuie să remedieze, dar nu ați adăugat modulul. Cum se încarcă fișierele care nu funcționează? Treceți doar la ramura de lucru fără modul, reparați bug-ul și încărcați fișierele pe server. Și când a trecut "pericolul" - continuați să lucrați la modul. Și acesta este unul din multe exemple de beneficii ale sucursalelor.
Să încercăm să vă creați propria ramură. Avem deja unul, este un maestru. Acesta este creat automat (dacă nu este disponibil) când efectuați prima comitere. Creați o altă ramură și o numiți "new_future1". Apăsați F7 sau faceți clic dreapta în partea de jos a filei Branches pentru a citi "Sucursale locale" și selectați "Add branch" din lista derulantă:
Faceți clic pe "Adăugați sucursala" Switch »care va trece imediat la ramura creată. Acum poți să creezi noi computere, să schimbi fișiere și să nu-ți faci griji. Întrucât aveți întotdeauna un master de bord, la care vă puteți întoarce. Când comutați o ramură, Git schimbă fișierele locale la cele care se află în acea ramură. Asta este, dacă creați o nouă sucursală pentru a schimba ceva în fișierul index.php, și apoi trece la ramura de master, toate modificările efectuate de dvs. vor fi șterse. Dacă reveniți la filiala creată, modificările vor reveni.
Până acum am lucrat pe plan local. Să încercăm să umplem lucrările de pe server. Să creăm un fel de comitere în filiala new_future1. Dacă magazia este goală și este goală, deoarece am creat-o cu ceva timp în urmă și nu am încărcat nimic pe server, Bitbucket atribuie în principiu acea ramură care a fost ocupată mai întâi. Prin urmare, treceți la ramura "master" și faceți clic pe butonul "Push":
Apoi, SmartGit vă va cere să configurați urmărirea cofigure. Urmărirea vă permite să actualizați automat sucursalele relevante atunci când descărcați sau descărcați actualizările de coduri. Prin urmare, dați clic pe "Configurați":
Acum treceți la o altă ramură și faceți același lucru. Să mergem la Bitbucket și să vedem ce se schimbă în secțiunea "Commitments":
După cum puteți vedea, totul a ajuns pe serverul de la distanță.
Acum vom lua ramurile. De ce este necesar? Să luăm același exemplu cu modulul. Mai devreme sau mai târziu îl veți adăuga și va trebui să adăugați codul modulului la codul principal al aplicației. Este suficient doar să scurgeți ramurile. Pentru a face acest lucru, treceți la sucursala în care doriți să îmbinați codul. În cazul nostru, acesta este un maestru. Apoi faceți clic dreapta pe ramura cu care doriți să îmbinați codul și selectați "Merge":
În continuare, SmartGit vă va întreba exact cum este necesar să îmbinați sucursalele. Selectați "Creare combinație".
Și acum rămâne să împingem schimbările sucursalei principale la server. Completați schimbarea la server în același mod ca înainte și obțineți: