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ă:
Î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.
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ă.
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ă.
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.
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
-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.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.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.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.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.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:
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ă.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. 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ă.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.
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.
Î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ă.
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.
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"
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.
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.
Î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.
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.
Î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ă.
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.
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!
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+.