Ce este nou cu suportul Git în Xcode 9

Ce veți crea

Ultima versiune IDE a Apple, Xcode 9, este lansată împreună cu iOS 11 în luna septembrie. Și este o actualizare uriașă! Fanii lui Git pentru managementul controlului sursei (SCM) sunt mari câștigători în această versiune viitoare.

Versiunile anterioare ale Xcode au avut suport pentru CSM, dar nu a fost niciodată considerat un cetățean de primă clasă. Suportul Git al lui Xcode a fost un buggy și lipsit de amploare, în comparație cu instrumente de specialitate, cum ar fi SourceTree, ceea ce a însemnat că dezvoltatorii trebuiau să sară între instrumente pentru a putea efectua sarcini avansate de gestionare a depozitului Git. 

Toate acestea s-au schimbat în Xcode 9. Apple nu mai vede SCM ca secundar, ci a optat pentru o integrare strânsă cu GitHub și a colaborat cu GitHub îndeaproape pentru Xcode 9. 

Rezultatul net este că vă puteți conecta acum la contul dvs. GitHub direct din Xcode, pentru a răsfoi, naviga și clona GotHub repo-urile. De asemenea, puteți căuta alte depozite fără a trebui să treceți la o fereastră de browser. Invers, dacă aveți un GitHub repo deschis în browserul dvs., puteți face clic pe butonul de clonare și Xcode se va clona automat și se va deschide proiectul. 

Dupa cum spune Apple, "Suportul pentru Git este acum in fata si centrul", iar Apple a introdus un nou navigator de control al sursei, deci nu trebuie sa deschizi o fereastra noua detailate vizual de restul Xcode. Dezvoltatorii pot vizualiza ramificațiile, etichetele și telecomenzile printr-o linie cronologică clară și intuitivă, pot inspecta angajamentele mai detaliate și pot vedea o comparație mai elegantă și mai atractivă a schimbărilor. 

Obiectivele acestui tutorial

În acest tutorial, vă voi trece prin lista de noi funcții SCM care au fost introduse cu Xcode 9. Vom analiza trei domenii majore:

  • comite
  • ramuri
  • Etichete

Cunoașterea presupusă

Pentru a urmări împreună cu acest tutorial, ar trebui să aveți o experiență anterioară cu Xcode și câteva cunoștințe de lucru despre managementul sursei prin Git. 

Începeți cu XCode 9 SCM

Configurarea mediului dvs.

Pentru a utiliza noile funcții SCM ale Xcode, va trebui să: 

  • Descărcați Xcode 9.
  • Au un cont GitHub gratuit sau plătit.

Odată ce ați descărcat și instalat ultima versiune Xcode și ai un cont curent GitHub, sunteți gata să vă conectați contul GitHub la Xcode 9. Lansați Xcode și accesați Preferințe > Conturi. Apoi, selectați + butonul din partea stângă jos pentru a adăuga un cont nou. 

Selectați GitHub din fereastra modală și introduceți-vă acreditările GitHub. Dacă utilizați autentificarea cu două factori, Xcode vă va solicita să introduceți codul. 

Navigarea și căutarea în depozitele GitHub

Să vedem cât de des puteți răsfoi depozitele publice existente GitHub, chiar din interiorul Xcode. Deschideți ecranul de întâmpinare Xcode dacă nu se afișează deja prin accesarea Fereastră > Bun venit la Xcode

Apoi selectați Clonați un proiect existent, care va aduce lista de depozite pe GitHub pe care le dețineți în prezent, lucrați sau ați jucat cu stea. 

În afară de lista pe care a prezentat-o, puteți căuta, de asemenea, un repo public (sau un repos privat la care aveți acces) după nume sau prin introducerea adresei sale GitHub. Pentru tutorialul nostru, tastați RealmDo și faceți clic pe Clone, și apoi selectați un director local pentru a clona proiectul. 

Acesta vă va cere apoi un director pentru a verifica proiectul în:

În loc să trageți proiectul repo din Xcode, o altă caracteristică foarte bună este că puteți deschide un replică GitHub în browserul dvs. și selectați Clonați sau descărcați și veți vedea un nou buton etichetat Deschideți în Xcode

Exact: dacă faceți clic pe el, acesta va deschide automat proiectul în Xcode, pentru a fi clonat și descărcat. 

Înapoi la proiectul nostru. Deoarece folosim CocoaPods pentru a gestiona dependențele, va trebui să sarăm înapoi în terminalul de comandă și să fugim pod instalare:

19:06 $ pod instalare Analiza dependențelor Descărcarea dependențelor Utilizarea Realm (2.7.0) Utilizarea RealmSwift (2.7.0) Generarea proiectului Pods Integrarea proiectului client Trimiterea de statistici Pod instalarea este completă! Există o dependență de la Podfile și 2 module de pods instalate.

Proiectul nostru ar trebui să fie înființat acum pe plan local, iar dvs. .xcworkspace ar trebui să fie deschisă în Xcode cu toate fișierele din proiect. 

XCode Preferințe SCM

Navigând la preferințele Xcode și apoi selectând Controlul surselor, puteți schimba diverse aspecte ale comportamentului său chiar din panoul de preferințe, inclusiv numele și adresa de e-mail a autorului Git și, interesant, chiar actualizați-vă .gitignore și setările. 

Asocierea unui nou proiect cu GitHub

Pe de altă parte, dacă ați creat un nou proiect Xcode și nu ați creat încă proiectul pe GitHub, puteți crea un nou proiect GitHub direct din Xcode. Faceți clic dreapta pe Telecomenzile apoi selectați Creați Remote "RealmDo" pe GitHub

Xcode vă va cere să dați depozitului un nume și să selectați un cont pentru a fi asociat acestuia.

Explorarea noii interfețe SCM

Să explorăm fiecare dintre secțiunile noii interfețe. 


  1. Panoul din stânga are lista dvs. de pictograme cunoscute pentru a accesa proprietățile proiectului. A doua tabă este nouă: este Source Control Navigator.
  2. Commit Istoria panou este cea mai proeminentă parte a navigatorului, vă prezintă o listă istorică de angajamente pentru proiect și sucursală.
  3. Panoul din partea dreaptă vă oferă informații suplimentare contextuale despre ramură și comitetele selectate.
  4. Alături de ramificația contextuală și informațiile de angajare, această secțiune din partea dreaptă vă arată care fișiere au făcut parte din comitetul selectat.
  5. Panoul din stânga vă oferă o vizualizare ierarhică a proiectului dvs. dintr-o perspectivă SCM, care vă arată sucursala curentă, orice altă ramură locală sau de la distanță și etichete. De asemenea, semnalează dacă există comitete noi care urmează să fie împinse sau trase, așa cum veți vedea mai târziu.

Navigatorul sursă de control

Unul dintre primele lucruri pe care le vom explora în Xcode 9 este Source Control Navigator, nou nou în Xcode 9. Nu mai este sursa de vizualizare a unui cetățean de clasa a doua - acum este complet copt în Xcode. Selectați a doua pictogramă din panoul din stânga, așa cum este indicat de (1) din imaginea de mai sus pentru a deschide Navigatorul de control al sursei. 

Commit Istoria

Să aruncăm o privire la perspectiva istoriei comitetului, care arată lista de angajamente pentru proiect, incluzând denumirea autorului, data, descrierea, precum și avatarul autorului de la GitHub, care alcătuiesc istoricul proiectului. 

Aceasta este o perspectivă foarte clară și frumos organizată. În timp ce acest exemplu de proiect este destul de redus în ceea ce privește istoria (deși vom schimba asta în curând), acest panou este înșelător de puternic. 

Dincolo de posibilitatea de a derula cu ușurință și de a obține informații istorice utile, puteți, de asemenea, să filtrați și să căutați intuitiv prin revizie, mesaj sau autor. De fapt, aveți posibilitatea să lanțați sau să vă înscrieți în mai multe filtre, pentru a căuta nu numai autorul, ci și prin revizuire. De asemenea, puteți căuta utilizând bara de domeniu, pentru perioade de date specifice, cum ar fi Ultimele 24 de oreUltimele 7 zile, sau Ultimele 30 de zile.

Selectarea unei comitete specifice aduce unele informații suplimentare în panoul din dreapta. Pe lângă informațiile despre sucursală, primiți informații de angajare, SHA-ul complet, autorul, mesajul și data. De asemenea, vedeți lista fișierelor făcute în timpul acelei comitete, ceea ce este extrem de util pentru a vă ajuta să identificați comiterea care a provocat o problemă în timpul depanării. 

Făcând dublu clic pe o comitere, se afișează o listă a fișierelor care s-au schimbat în comitetul respectiv pe panoul din stânga, iar o comparație a versiunii va fi afișată în față și în centru. Aceasta este perspectiva familiarizată cu diferențele, dar mult îmbunătățită de această dată. 

Selectarea editorului de asistență din partea dreaptă sus poate accesa o vizualizare de diferere foarte bună, care vă permite nu numai să vizualizați o difare a fișierului, dar și să traversați cu ușurință comitetele anterioare și să vedeți informațiile despre comitere, precum și informații reale modificări ale fișierelor. 

Dând clic dreapta pe un comitet, puteți să vedeți și un meniu care vă permite să contactați autorul, să copiați informațiile de comitet, sucursala din comitetul respectiv sau chiar să deschideți comitetul pe GitHub în browser. 

Puteți crea, de asemenea, o etichetă, care este ceea ce vom face. Selectează Etichetă butonul de pe primul comitet și numele eliberare / 0,1

Denumirea etichetelor în acest format, prin setarea unui grup părinte (lansare, beta etc.), servește un scop interesant, pe care îl vom afla în scurt timp. Deocamdată, de vreme ce am etichetat un comitet, vom aborda următorul subiect: ramificare. 

branșament

În prezent, ne aflăm în curs de dezvoltare pe ramura master, dar în timpul fluxului de lucru normal am lucra de obicei pe o ramură separată. Am face o ramură pentru a dezvolta și a testa o caracteristică și apoi o reintroduceți în ramura principală când funcționează corect. Să creăm o nouă ramură prin clic dreapta maestru și selectarea Sucursala de la maestru. Sunați la noua sucursală readme_changes

Vreau să demonstrez cum merge fuzionarea, așa că în noua ramură, să ne angajăm schimbările prin selectarea Controlul surselor > comite. Acest lucru ne aduce înapoi la viziunea de comparație, oferindu-ne posibilitatea de a confirma toate schimbările pe care le-am făcut în cadrul acestui angajament, cu posibilitatea de a compara linia noastră de modificări pe linie.

După ce ați verificat modificările, introduceți un mesaj de comitere similar cu cel de mai jos. Și asigurați-vă că verificați Apăsați pe la distanță cutie.

Când ramura noastră de funcții este completă, vrem să o reintrăm în ramura principală. Faceți clic dreapta pe ramura principală și selectați a doua opțiune de îmbinare: Mergeți de la "readme_changes" la "master"

Xcode va fuziona apoi și vă va reveni automat la sucursala principală. Trecând înapoi la ramura master, veți observa o săgeată mică în sus cu cifra 1 la dreapta ramurii actuale. 

Acest lucru ne permite să știm că avem o comitet care trebuie împins în depozitul de la distanță. Dacă a fost numărătoarea 2, am fi două comitete înaintea comandantului la distanță. 

Invers, dacă există actualizări noi în maestru pe care nu le-ați tras încă, Xcode vă va informa. Codul Xcode va fi preluat de la telecomandă și vă va avertiza cu o săgeată în jos și va contoriza că sunteți în spatele masterului la distanță. 

tagging

Mai devreme, am creat o etichetă pe unul dintre comitetele anterioare. Observând panoul principal, puteți vedea o altă comitet care a fost etichetată. Panoul din stânga facilitează vizualizarea unei liste concise a tuturor etichetelor de mai jos. 

Amintiți-vă de convenția de numire pe care am folosit-o pentru eticheta noastră, eliberare / 0,1. Am făcut asta pentru un motiv. Crearea de etichete cu un părinte ierarhic permite ca Xcode să grupeze împreună etichetele. 

În cazul nostru, avem două etichete care aparțin eliberare tag-ul părinte. Putem crea mai multe grupuri logice pentru etichetele noastre din diferite motive, iar Xcode ușurează organizarea etichetelor noastre. 

Selectând o etichetă specifică, istoricul comitetelor va afișa numai comitete care au legătură cu acea etichetă, ceea ce înseamnă că avem un manifest complet de codificare al tuturor modificărilor introduse în timpul lansării. Acest lucru ne va ajuta să restrângem orice cod problematic specific acestei lansări.

Concluzie

Xcode 9 este o lansare uriașă și una dintre cele mai mari caracteristici noi este că Apple a integrat în sfârșit SCM ca cetățean de primă clasă al IDE-ului. Acest lucru rezolvă o problemă de lungă durată, mulți dezvoltatori au exprimat despre modul în care Xcode a reușit dezvoltarea colaborării și versiunea. 

În Xcode 9, nu numai că GitHub este amestecat fără probleme în platformă, dar dezvoltatorii sunt acum recompensați cu o interfață de gestionare a codului într-o nouă filă SCM. Dezvoltatorii obțin o vizualizare definitivă a istoricului codului, a comitetelor, a fuzionărilor, a etichetelor și a ramificațiilor, precum și a unor perspective avansate pentru depanarea și identificarea comitetelor care au introdus erori. Iubitorii GIT și actorii de la SCM vor aprecia cu adevărat inițiativa Apple de a consolida un instrument de management Git cu adevărat puternic, toate în cadrul IDE.

În timp ce sunteți aici, verificați unele dintre celelalte postări ale noastre privind dezvoltarea aplicațiilor Xcode, Swift și iOS!

Cod