Controlul versiunii Git pe linia de comandă pentru iOS Devs

Sa întâmplat cu noi toți: schimbăm ceva în codul nostru și, brusc, totul pare a fi "rupt". Acesta este momentul când controlul versiunii este un avantaj - dacă știți cum să îl utilizați. În acest tutorial, vom învăța cum să folosim Git din linia de comandă.

Xcode și alte IDE-uri moderne au opțiuni de bază pentru Git încorporate în interfața grafică a utilizatorilor, dar obțineți controlul la nivel înalt al repo-ului dvs. (repository Git) prin linia de comandă. Dacă faci codare avansată sau Git management, este important să fii confortabil cu linia de comandă. Dacă nu ați mai folosit linia de comandă înainte, vă recomandăm să vedeți celălalt tutorial pe această temă:

Despre controlul versiunii

Înainte de a începe, ar trebui să examinăm exact ceea ce este Controlul versiunii. A Sistem de control al versiunilor este o soluție software care poate salva cu ușurință revizuirile codului și a altor date, astfel încât să puteți reveni la versiunile anterioare, să revizuiți modificările care au fost făcute și să împărtășiți actualizări cu colaboratorii. 

Există multe avantaje și cazuri de utilizare pentru controlul versiunii. De exemplu, prin revizuirea modificărilor ("comite") pentru proiectul dvs., puteți identifica cine a scris un anumit fragment de cod și de ce. De asemenea, puteți să reintroduceți toate modificările care s-au dovedit a fi eronate sau pentru a întrerupe funcționalitatea.

Cel mai frecvent utilizat sistem de control al versiunilor este Git, deci acesta este cel pe care îl vom analiza în acest post. Rețineți că există și alte sisteme utilizate pe scară largă, de exemplu - SVN și Mercurial. 

Condiții și concepte cheie

  • repertoriu sau repo-conține întregul cod pentru un singur proiect, împreună cu întreaga istorie a schimbărilor fiecărui fișier.
  • director de lucru-când editați codul, faceți modificări în directorul dvs. de lucru. Dacă doriți să salvați aceste modificări în repo, va trebui să faceți una comite. Dacă toate schimbările din directorul de lucru au fost angajate în repo, directorul de lucru este curat.
  • comite-un grup de modificări la fișierele sursă. În mod obișnuit, aceste modificări sunt grupate astfel încât fiecare comitet să se refere la o singură problemă de remediere sau o caracteristică.
  • ramură-lucrul la un proiect poate fi organizat în ramuri. Acest lucru permite unui dezvoltator sau unui grup de dezvoltatori să lucreze la o funcție, în timp ce un alt dezvoltator lucrează la o altă funcție. 
  • îmbina-aduce schimbările în două ramuri împreună. Adesea, acest lucru se poate face automat de Git, dar dacă există conflicte, este posibil să trebuiască să îi spuneți manual Git cum să fuzioneze fișierele.

Servicii de gestionare a depozitelor

Când utilizați controlul versiunii, creați o repertoriu, sau repo, și este cel mai comun pentru a găzdui această repo pe o Servicii de gestionare a depozitelor. În scopul acestui tutorial, nu vom mai găzdui repo-ul nostru oriunde, astfel încât să vă puteți concentra pe utilizarea versiunii de control. Dacă doriți, puteți citi aceste servicii de gestionare a depozitului și ar trebui să puteți aplica aceste cunoștințe dacă doriți. 

Câteva exemple sunt GitHub, Bitbucket, GitLab și Coding și sunt utilizate pe scară largă de dezvoltatori din întreaga lume. Eu, și mulți alții, folosesc GitHub pentru că găzduiește un număr mare de proiecte open source. Rețelele GitHub sunt publice în mod prestabilit, dar puteți crea repo-uri private pentru o taxă lunară.

Noțiuni de bază

Crearea unei aplicații

Pentru a începe, va trebui să creați o nouă aplicație în Xcode. Pentru această aplicație, puteți utiliza orice șablon pe care îl doriți și dacă aveți o aplicație curentă care are un depozit Git, puteți să o utilizați și pentru acest tutorial.

Iată ce ar trebui să arate IDE chiar înainte de a vă crea în final proiectul (când trebuie să decideți locația pentru stocarea proiectului):

Asigurați-vă că caseta care spune Creați un depozit Git pe computerul meu Mac este verificată, deoarece acest lucru va asigura că proiectul dvs. va avea în mod intern repo. Mai târziu, dacă alegeți să utilizați un sistem de gestionare a depozitului, veți putea Apăsați tot acest cod și fiecare comite pe care le-ați făcut vreodată.

Deschiderea Terminalului

Pentru a ajunge la linia de comandă, va trebui să deschideți Terminalul. Puteți face acest lucru într-unul din două moduri. Poți să deschizi Platforma de lansare, și acolo puteți găsi Terminal pictograma în Alte folder de pe prima pagină a programului Launchpad. Sau puteți lovi Command-Space pe tastatură și căutați Terminal în Reflector.

Odată ce deschideți terminalul, ar trebui să vedeți ceva de genul următor.

Aceasta se numește "promptul de comandă" - veți vedea directorul curent, apoi numele de utilizator urmat de a $.

In regula! Acum sunteți gata să aflați cum să utilizați controlul versiunii pe Terminal.

Comenzi terminale Cheat Sheet

Iată câteva dintre comenzile de bază pe care le-am scris în tutorialul meu despre cum să încep cu Terminalul. Veți avea nevoie de aceste cunoștințe pentru a utiliza terminalul în mod eficient. 

Ajutor

  • Ajutor-după cum sugerează și numele, puteți introduce această comandă în Terminal pentru a obține o listă de comenzi diferite.
  • om -similar cu comanda anterioară, această comandă vă spune exact ce face o comandă (și vă oferă documentația completă) fără a fi nevoie să căutați Google pentru aceasta.

Gestionarea fișierelor

  • ls-afișează tot conținutul din directorul curent. Această comandă vine la îndemână dacă nu doriți să utilizați Finder pentru a răsfoi fișiere - puteți să le listați pur și simplu utilizând această comandă în Terminal.
  • CD -această comandă este utilizată pentru a schimba directoarele. Dacă scrieți CD singur, veți ieși din directorul curent. După utilizare ls (pentru a vedea directoarele), puteți scrie numele directorului pe care doriți să îl introduceți.

Modificarea preferințelor

  • implicite -această comandă este utilizată pentru a modifica setările implicite ale sistemului, dintre care unele nu pot fi modificate fără a utiliza terminalul.
  • caffeinate-după cum sugerează și numele, această comandă este folosită pentru a împiedica Macul tău să se stingă, să se oprească sau să doarmă. Pentru a termina acest lucru, tot ce trebuie să faceți este să apăsați Control-C.

Editare text

  • sevă -aceasta este una dintre favoritele mele. Puteți edita fișiere text folosind TextEdit implicit (sau orice editor bazat pe GUI), dar sevă este în esență un editor de text pentru linia de comandă - adică funcționează în întregime în terminal.

Rețele

  • ping -această comandă vă permite să verificați timpul de răspuns al serverului pentru o adresă URL sau o adresă IP specificată. Acest lucru poate să nu fie util pentru fiecare dezvoltator, dar este bine să știți.

admin

  • sudo -o modalitate de a suprascrie privilegiile utilizatorului și de a deveni un superuser al computerului. Vi se va solicita o parolă de administrator când o utilizați.

Diferite comenzi Git

Acum că ați văzut câteva comenzi terminale de bază, să învățăm despre diferitele lucruri pe care le puteți face cu Git. Nu le voi acoperi pe toate, dar te voi învăța despre cele mai importante pe care le vei folosi în dezvoltarea de zi cu zi. Dacă aveți nevoie de mai multe informații, puteți rula ajutor git în terminalul dvs. pentru detalii, iar dacă nu este suficient, pentru documentația completă, puteți rula om git pentru a obține pagina manuală.

Iată cum arată paginile de ajutor:

Crearea unui proiect

  • clona git remote-repo-link-dacă doriți să clonați un depozit dintr-un serviciu de gestionare a depozitului, puteți utiliza această comandă împreună cu adresa URL pentru a obține o copie locală pe computerul dvs..
  • git init-dacă creați un depozit nou dintr-un dosar existent, puteți utiliza această comandă. Acesta va inițializa dosarul curent ca fiind un nou repo. De obicei, ați face acest lucru când creați un proiect pentru prima dată.

Modificarea comitetului

  • git status-vă spune ce fișiere din directorul dvs. de lucru au fost modificate. Dacă ați schimbat fișierele, s-ar putea să fie timpul să faceți o comitere!
  • git commit-am "ajutor de încredințare mesaj"-când ați făcut unele modificări în proiectul dvs. (de exemplu, atunci când ați finalizat o caracteristică simplă sau ați făcut o remediere a unei erori), trebuie să vă faceți schimbarea. Asigurați-vă că furnizați un mesaj concis și clar de comitet, deoarece acest lucru va ajuta alți dezvoltatori să înțeleagă ce ați făcut și de ce.
  • git adăugați filename sau git add - toate-dacă adăugați un nou fișier în repo, va trebui să îl adăugați în repo înainte să îl angajați. Folosește adăuga comanda. 

Sucursalele depozitelor

  • git ramură branch-name?-cu această comandă, puteți fie să listați sucursalele actuale, fie să creați unul nou.
  • git îmbinare branch-name-îmbinați ramura curentă cu ramura indicată. Acest lucru va combina codul din ramura curentă cu cel denumit.
  • git cashout branch-name-treceți la ramura indicată. Aceasta va pune pur și simplu ramura curentă și va face alta ramură activă.

Sisteme de management al depozitelor

  • git push-actualizează depozitul din sistemul de gestionare a depozitului. După ce ați terminat de făcut modificări și sunteți sigur că codul funcționează bine, puteți să vă împingeți codul astfel încât ceilalți membri să poată vedea codul și să-l tragă.
  • git trageți-actualizează copia de lucru locală a repo pentru a reflecta ultimele actualizări care au fost împinse în sistemul de gestionare a depozitului. Este o idee bună să faceți acest lucru înainte de a face orice schimbări dacă lucrați la o echipă.

Acestea sunt câteva din comenzile principale pe care le veți folosi în controlul versiunii pentru a începe, dar înainte de a încheia acest tutorial, să aruncăm o privire asupra câtorva dintre ele în profunzime cu proiectul Xcode pe care l-am creat mai devreme.

Exemplu de utilizare a Git cu un proiect Xcode

Acum, să aruncăm o privire asupra câtorva exemple de utilizare a liniei de comandă Git cu proiectul Xcode pe care l-am creat mai devreme în acest tutorial. Rețineți că vom folosi comenzile terminale de mai sus, deci asigurați-vă că continuați să le referiți la acestea sau să le memorați.

Navigarea la directorul de proiect

Înainte de a începe, va trebui să navigați la directorul de proiect folosind comenzile menționate mai sus (sugestie: utilizați CD și ls comenzi). Odată ce sunteți acolo, fugiți ls și asigurați-vă că aveți ceva de genul:

Ta-da! Acum sunteți în directorul de proiect și sunteți gata să faceți tot ce aveți nevoie pentru proiectul dvs. Pur și simplu urmați-vă de-a lungul timpului când ne angajăm și ne ramură.

comite

Comandarea codului dvs. este lucrul pe care îl veți întâlni cel mai adesea în programare. De îndată ce faceți o schimbare de lucru, cea mai bună practică este să o angajați împreună cu comentarii detaliate.

Efectuarea unei schimbări

Pentru a începe, faceți o schimbare la proiectul Xcode. Pentru mine, voi adăuga următoarea linie de cod fals în mine viewDidLoad () metodă:

lasa foobar = "foo"

Obținerea statutului

După ce ați terminat adăugarea (sau scăderea) unei linii sau a două coduri, sunteți gata să verificați starea proiectului. Pentru a face acest lucru, lipiți următoarea comandă (minus $ prompt) în fereastra Terminal:

$ git status

Veți vedea ceva de genul:

Fișierul pe care l-ați modificat este evidențiat în roșu, care vă spune că are modificări necondiționate.

Adăugarea de fișiere în zona de așteptare

Dacă doriți să comiteți numai anumite fișiere, puteți face acest lucru utilizând o "zonă de așteptare" unde vor fi angajate numai acele fișiere. Pentru a adăuga toate fișierele modificate în "zona de așteptare", tot ce trebuie să faceți este să executați următoarea linie de cod:

$ git adăugați -A

 -A care vedeți înseamnă că toate fișierele pe care le-ați modificat vor fi adăugate (-A este pentru toți, și puteți scrie, de asemenea git add - toate). 

Pentru a vedea că fișierele dvs. sunt gata să se angajeze, trebuie doar să rulați din nou următoarele:

$ git status

Veți vedea ceva de genul:

Vedea? Același fișier care a fost roșu este acum verde, ceea ce indică faptul că l-ați pregătit cu succes să se angajeze. 

Comandarea Codului tău

În cele din urmă, pentru a vă angaja codul, tot ce trebuie să faceți este să executați următoarea comandă în terminalul dvs. și între ghilimele, să adăugați un mesaj.

$ git commit -m "Primul meu comitet".

 -m steagul spune Terminalului că veți adăuga un mesaj fișierului dvs. și este destul de important să fiți clar cu acest mesaj. Aceste mesaje sunt esențiale pentru a urmări schimbările din proiectul dvs..

Acum ai făcut primul tău comitet! Sunteți pe calea cea bună pentru a vă face codul mai ușor și mai sigur.

Ramuri

Cel de-al doilea cel mai obișnuit lucru pe care îl veți realiza ca dezvoltator este să creați, să îmbinați și să utilizați filiale pentru a vă sorta codul și pentru a izola caracteristicile înainte de a le lansa clienților.

Crearea unei noi filiale

În mod implicit, sunteți în ceea ce numim sucursala "master". Aceasta este ramura principală care, în cele din urmă, ar trebui să aducă la iveală totul. Cea mai bună practică, în special lucrul cu o echipă, este de a lucra la noi caracteristici majore din ramurile proprii, care vor fi reunite în master atunci când sunt complete.

Pentru a practica lucrul cu ramurile, să creăm o nouă ramură. Pentru aceasta, executați următoarea comandă:

$ git sucursala mea-prima-sucursală

Puteți numi sucursala oricui doriți. 

Pentru a vedea noua ramură, puteți să tastați:

Sucursala $ git

Când executați comanda respectivă, veți vedea ceva de genul:

Observați că puteți vedea două ramuri: maestru și mi-prima-ramură (sau orice ați numit sucursala dvs.). În plus, veți vedea că există un asterisc de către maestru ramificație, ceea ce indică faptul că sunteți în acea ramură.

Verificarea unei ramuri curente

Dacă vreți să treceți la o altă ramură existentă, va trebui să faceți acest lucru verifică acea ramură. Când faceți acest lucru, părăsiți sucursala curentă și tot codul va rămâne intact (împreună cu modificările dvs. locale), dar directorul de lucru va fi populate cu codul din ramura pe care ați verificat-o.

Încercați cu următoarea comandă:

$ git checkout prima mea ramură

Ar trebui să obțineți o confirmare care arată cam așa:

Acum ai trecut la această ramură și ar trebui să fie o artă curată. Pentru a confirma acest lucru, executați git status pentru a verifica dacă există fișiere modificate. 

Îmbinarea filialelor

După ce ați terminat de făcut modificări, în mod normal, veți îmbina filiala cu sucursala principală. Nu am făcut încă nicio modificare, așa că hai să facem asta acum înainte să fuzăm cele două sucursale.

Faceți o altă modificare a proiectului Xcode. Pentru mine, voi adăuga următoarea linie de cod fals în mine viewDidLoad () metodă:

let gooey = "fooey"

Puteți face orice schimbare doriți. Doar asigurați-vă că știți ce fișier și ce schimbare ați făcut.

După ce ați terminat, rulați din nou următorul rând de cod:

$ git status

Acum, ar trebui să vedeți numele fișierului în roșu și va trebui să vă angajați înainte de a merge la această ramură principală. Am încredere că știi cum să faci asta, așa că hai să trecem la pasul următor. Verificați verificarea cu succes a angajamentului git status.

Până acum, ar fi trebuit să fi comis codul, așa că hai să fim gata să fuzăm cele două ramuri. Mai întâi, executați următoarea comandă:

$ git master checkout

Această comandă se comută la maestru ramură pentru a se pregăti să fuzioneze cu cealaltă ramură pe care am creat-o. În cele din urmă, pentru a fuziona, executați următoarea comandă:

$ git îmi îmbină fabrica

Ar trebui să obțineți o confirmare care arată astfel:

Acum, modificările de la sucursala de funcții au fost reunite în master. Dacă ramura principală a fost modificată de la crearea filialei, Git va încerca să combine automat modificările sucursalei cu master. Dacă nu poate face acest lucru în mod automat, vă va solicita să rezolvați manual conflictele.

Acum știi cum să fuzionezi ramuri, să le creezi și să le schimbi folosind doar Terminalul!

Concluzie

După cum vedeți, nu este prea dificil să faceți controlul versiunii cu proiectul dvs., iar recompensele merită bine. Controlul versiunilor este o practică de bază pentru dezvoltare și ar trebui să fiți familiarizați cu aceasta dacă doriți să lucrați într-un context profesional. 

Sper că acest post v-a oferit încrederea în utilizarea controlului versiunii pe o bază zilnică. Dacă doriți să aflați mai multe despre Git, consultați câteva dintre videoclipurile noastre instructive animate aici pe Envato Tuts+.

Cod