Git. Începeți rapid utilizarea operațiunilor de bază cu explicații

Acesta descrie partea practică a problemei utilizării GIT - instalarea și înregistrarea acestuia pe serverul Gitub.com.

Github.com este un serviciu care oferă stocarea codului și a datelor utilizând sistemul de control al versiunii. Git.. GitHub oferă un plan tarif gratuit pentru stocarea datelor 300MB în formularul deschis. Aceasta înseamnă că orice utilizator de Internet vă poate descărca datele. Pe GitHub pot fi plasate și închise la alt depozit, plătind 7 dolari pe lună. În contul GitHub gratuit, în mod implicit, nimeni nu vă poate schimba datele (poate citi numai). Dar puteți insista care dintre utilizatorii sistemului Github are dreptul de a înregistra.

Articolul descrie în detaliu cum să faceți setarea GIT în Windows și în sistemul de operare Linux.

Instalarea git sub Linux

Utilizatorii Linux, cred că nu are sens să explic cum să instalați git - acest lucru se face în moduri diferite. În sistemul Debian (care merită cu mine), pentru a instala git, puteți utiliza comanda:

apt-get instalare git

Instalarea git sub ferestre

Mergem pagina Oficială Git http://git-scm.com, faceți clic pe Descărcați pentru Windows.. În fereastra care se deschide, faceți clic pe Instalator complet pentru GIT oficial. Rulați Exe-Shnik primit.

În procesul de instalare, se va întreba această întrebare:

Vă recomandăm să alegeți "Run Git din promptul de comandă Windows". Toate celelalte opțiuni pot fi lăsate în mod implicit. După instalarea gitului, trebuie să reporniți sau să completați sesiunea de utilizator și să vă conectați pentru a utiliza modificările variabilei sistemului de cale.

Dacă primiți informații despre versiune, atunci Git este instalat și rulează. Dacă primim informațiile pe care programul Git nu le-a găsit, înțelegem ce au făcut greșit.

SSH cheie SSH.

Înainte de a vă înregistra cu GitHub, trebuie să generați mai întâi o criptare cu cheie SSH. Această cheie este necesară pentru a instala rapid conexiunea cu GitHub, fără a intra în parolă. Fără o astfel de cheie GitHub, nu va fi ușor de făcut.

Atenţie!

La momentul generației cheie, va fi solicitată parola. Acest acces la parolă la tasta închisă, care este stocată numai pe mașina dvs. și oriunde altundeva. Această parolă este setată pentru valori mobiliare maxime, deși puteți face fără ea. Trebuie să știți că prin setarea unei parole la o cheie privată, va trebui să introduceți această parolă cu fiecare server GitHub. Astfel, atunci când specificați o parolă, dispare toate comoditatea utilizării cheilor de criptare.

Utilizatorii MyTera: Interfața de a lucra cu linia de comandă, care este utilizată pentru a apela git în timpul sincronizării, nu poate funcționa la introducerea caracterelor. Prin urmare, dacă specificați parola, sincronizarea nu va funcționa.

Configurarea cheilor ssh în Linux

ÎN sistem de operare Linux trebuie mai întâi să analizeze directorul ~ / .ssh. Dacă există fișiere id_rsa și id_rsa.pub, atunci acesta este tastele ssh. Dacă nu există un astfel de director sau astfel de fișiere, atunci tastele trebuie generate. Lăsați echipa:

In schimb [E-mail protejat] Trebuie să specificați adresa dvs. de e-mail. În procesul de generare cheie, vă veți întreba de unde să puneți fișiere, pur și simplu apăsați Enter. Când solicitați o parolă pur și simplu apăsați ENTER. După generație, fișierele ID_RSA și ID_RSA.PUB ar trebui să apară în directorul ~ / .ssh, vor fi potrivite pentru noi mai târziu.

Configurarea cheilor ssh în Windows

În sistemul de operare Windows, generatorul cheie SSH este inclus în pachetul GIT. Pentru a genera taste, trebuie să rulați pentru a executa fișierul C: \\ Fișiere de program \\ git \\ git bash.vbs. Acesta poate fi lansat ca un exe-shnik obișnuit. Se deschide programul Consola Git. Trebuie să i se acorde o echipă:

sSH-KEYGEN -T RSA -C " [E-mail protejat]"

Fii atent, în această consolă, trecutul de poliție va observa, pur și simplu introduceți comanda manual. Ca e-mail, specificăm dvs. cutie poștală. La cerere " Introduceți fișierul în care să salvați cheia"Doar apăsați ENTER. Când solicitați o parolă" Enterphrase Pass "și" Introduceți aceeași expresie de parolă din nou "Pur și simplu apăsați ENTER. În procesul de generare a tastelor în consolă, vor fi emise aproximativ următoarele informații:

Generarea perechii de chei RSA publice / private.
Introduceți fișierul în care să salvați cheia (/ c / documente și setări / Utilizator / .ssh / id_rsa)
Introduceți expresia de acces (gol pentru nici o expresie de acces):
Introduceți din nou aceeași expresie de acces:
Identificarea dvs. a fost salvată în / c / documente și setări / nume de utilizator / .ssh / id_rsa.
Cheia dvs. publică a fost salvată în / c / documente și setări / Utilizator / .ssh / id_rsa.pub.
Amprenta cheie este:
51: DB: 73: E9: 31: 9F: 51: A6: 7A: C5: 3D: DA: 9C: 35: 8f: 95 [E-mail protejat]

După efectuarea acestui program, în catalog C: \\ Documente și setări \\ username \\ssh ID_RSA și ID_RSA.PUB Fișierele vor fi localizate, acestea vor fi utile pentru noi mai târziu.

Înregistrare pe github.com.

Acum totul este pregătit pentru înregistrare. Accesați pagina de pornire a lui Github.com. Interfața este puțin confuză, așa că voi da o pereche de capturi de ecran în care este apăsat. Designul și aspectul pot fi modificate în orice moment, așa că descriu logica acțiunii acest moment.

În meniul de sus găsiți elementul " Prețuri și înscriere."Și faceți clic pe el:

O pagină de selecție se deschide planul tarifar.. Alegeți un cont gratuit " CREAZA UN CONT GRATUIT":

Instalarea unei taste ssh în GitHub

Imediat după înregistrare, este necesar să vă înregistrați cheia de criptare a cheii publice în sistemul Guthub (Cheia SSH deschisă). Pentru a adăuga o cheie, este necesar în partea dreaptă colțul superior presa Setările contului":

În fereastra care se deschide, trebuie să faceți clic pe elementul de meniu " Chei publice ssh.", și faceți clic pe" Adăugați o altă cheie publică"Două câmpuri vor apărea - numele cheie ( Titlu) și conținutul cheie ( Cheie.).

În câmpul Titlu Puteți scrie numele computerului pe care este generată cheia publică. Puteți scrie în limba rusă.

În câmpul Cheie. Trebuie să introduceți conținutul fișierului ID_RSA.PUB. Amintiți-vă, în ce catalog sunt acestea? Accesați acest director, deschideți prin orice editor de text Id_rsa.pub (este cu extensia .pub, nu confunda). Evidențiam tot textul, copia și introduceți pe pagina GitHub în câmp Cheie..

După adăugarea unei taste, computerul se poate conecta la GitHub prin programul GIT și nu trebuie să apară erori.

Crearea unui depozit pe GitHub

Acum este timpul să vă creați primul dvs. depozit pe Github. Depozitul poate fi vizualizat pur și simplu ca un director în care se află fișierele și subdirectoarele sincronizate. Trebuie să creați un depozit în interfața Web GitHub și o puteți completa deja cu fișiere și să lucrați cu acesta utilizând programul Git de pe computer.

Pentru a crea un depozit, trebuie să faceți clic în colțul din dreapta sus " Bord.". În fereastra care se deschide, veți vedea elementul" Creați un depozit.":

Deci, nu avem nevoie de acest element! Acest articol nu deschide dialogul creației depozitelor și pagina de ajutor. În loc să faceți clic pe acest articol, căutăm mai jos pe pagină pentru o legătură improbabilă " Creați un depozit."De asemenea, va deschide dialogul pentru a adăuga un nou depozit.

În adăugarea unui nou dialog de depozit, trebuie să completați cel puțin câmpul Nume proiect " Denumirea proiectului."În numele proiectului, este mai bine să nu utilizați chirilic, deoarece numele proiectului este numele directorului. Pentru a evita problemele, numele proiectului conține numai latină. După apăsarea butonului" Creați un depozit.", va fi creat depozitul.

Referința de funcționare la depozitul în sistemul Github este formată astfel. Dacă v-ați înregistrat sub numele de utilizator Nume și depozitul dvs. este numit reponmes, atunci puteți utiliza următoarele linkuri pentru a accesa acest depozit:

În Sintaxa GIT:

[E-mail protejat]: nume de utilizator / reponmed.git

În sintaxa HTTPS:

hTTPS: // [E-mail protejat]/Username/reponame.git.

Lucrul cu depozitul pe GitHub prin programul GIT

De acum înainte, dansurile din jurul interfeței web GitHub pot fi considerate complete. Apoi, puteți funcționa numai cu ajutorul programului Git.

La început, trebuie să faceți o mică configurare a programului GIT: Specificați sistemul git local al utilizatorului și e-mailului. Acest lucru se face prin următoarele comenzi care pot fi efectuate în orice director:

git config - Global utilizator.name "yotfullname"
Git config - global user.email [E-mail protejat]

unde, în loc de dvs., trebuie să vă scrieți numele și în schimb [E-mail protejat] - email-ul tau. Aceste valori sunt folosite pentru conectare pe GitHub. Prin urmare, trebuie să vă specificați datele de conectare pe GitHub - pe loc [E-mail protejat] Trebuie să specificați e-mailul pe care l-ați introdus la generarea cheilor de criptare.

După aceste setări, puteți să vă turni fișierele în depozit. Accesați catalogul cu proiectul dvs. și oferiți echipelor:

git comitează -A -M "Primul comitere"

git la distanță add origine [E-mail protejat]: nume de utilizator / reponmed.git

git push -u maestru de origine

După aceste comenzi, o copie a fișierelor din director este formată pe serverul GitHub, în \u200b\u200bcare au fost efectuate datele de comandă. Apoi, puteți face deja comite, completați schimbările serverului GitHub, citiți modificările de la server. Dar aceasta este o poveste complet diferită.

Pentru oameni, rezistă în mod natural schimbarea. Dacă git nu te-a întâlnit când ai început să lucrezi cu sistemele de control al versiunilor, probabil că vă simțiți mai confortabil în sistemul de subversiune (SVN).

Adesea, oamenii spun că GIT este prea complicată pentru începători. Cu toate acestea, mă voi permite să nu fiu de acord cu ea.

În această lecție, vă voi spune cum să utilizați GIT în proiectele dvs. Să presupunem că creați un proiect de la zero și doriți să îl gestionați folosind git. După ce au mers pe lista comenzilor majore, veți obține o idee despre cum să plasați codul în nor de către GitHub.

În acest articol vom vorbi despre elementele de bază ale GIT - cum să vă inițializați proiectele, cum să gestionați fișierele noi și existente și cum să salvați codul în nor.

Nu vom atinge părți relativ complexe ale GIT, cum ar fi ramificarea, deoarece această lecție este proiectată pentru începători.

Instalarea git.

Pe site-ul oficial git este informatii detaliatela instalarea acestuia pe Linux, Mac și Windows. În cazul nostru, vom folosi pentru a demonstra Ubuntu 13.04 pentru a instala git folosind apt-obtine:

sudo apt-get instalare git

Setare initiala

Să creăm un director în care vom lucra. Alternativ, puteți utiliza git pentru a gestiona unul dintre proiectele existente; În acest caz, nu va trebui să creați un director demo, după cum se arată mai jos:

mkdir my_git_project cd my_git_project

Primul pas este inițializarea gitului în director. Acest lucru se poate face folosind comanda init, care creează un director .GIT care conține toate informațiile asociate cu GIT pentru proiectul dvs.

git config - global user.name "Shumik" git config --global user.email " [E-mail protejat]"Git config --global color.ui" auto "

Este important să rețineți că dacă nu vă specificați numele și adresa dvs. e-mailValorile implicite vor fi utilizate. În cazul nostru, valorile implicite ar fi Donny numele de utilizator și adresa de e-mail [E-mail protejat].

În plus, specificăm pentru culoare interfața cu utilizatorul Valoarea automată, astfel încât ieșirea comenzilor git va avea o lumină de fundal de culoare.

Prefixul-global este necesar pentru a nu introduce aceste comenzi de setări, data viitoare lansăm proiectul GIT din sistemul nostru.

Pregătirea fișierelor pentru comitere

Următorul pas este să creați fișiere în director. Puteți utiliza, de exemplu, editor de text Vim. Rețineți că dacă doriți să adăugați git într-un director existent, nu este necesar să efectuați acest pas:

Verificați starea de depozit

Acum că avem mai multe fișiere în depozitul nostru, să vedem cum se transformă Git la ei. Pentru a verifica starea de depozitare actuală, trebuie să utilizați comanda de stare GIT:

Adăugarea de fișiere la git pentru a urmări

În prezent, nu avem fișiere pentru a urmări folosind git. Trebuie să adăugăm fișiere în mod specific în git pentru a specifica git pe care trebuie să urmăriți.

Adăugați fișiere cu comanda Adăugați:

După verificarea stării depozitului, vom vedea că a fost adăugat un fișier:

Pentru a adăuga mai multe fișiere, puteți utiliza următoarea intrare de comandă (rețineți că am adăugat un alt fișier pentru demonstrație):

git adaugă myfile2 myfile3

Puteți utiliza git adăugați recursiv, dar aveți grijă de această comandă. Există anumite fișiere (de exemplu, compilate fișiere), care sunt de obicei stocate în afara depozitului GIT.

Dacă utilizați recursiv comanda Adăugare, acesta va adăuga toate aceste fișiere dacă există în depozitul dvs.

Ștergerea fișierelor.

Dar executarea unei comenzi simple GIT RM va șterge fișierul nu numai de la git, ci și din sistemul dvs. de fișiere locale! La

Git a încetat să urmărească fișierul, dar fișierul în sine este păstrat în sistemul dvs. local, rulați următoarea comandă:

git rm --Cached

Să se schimbe

După ce ați plasat fișierele, le puteți respecta la Git. Imaginați-vă că comiterea este o captură a unui anumit punct la care vă puteți întoarce pentru a vă accesa depozitul în acest stadiu.

Vă puteți lega de fiecare comisie un mesaj care este adăugat utilizând Prefix -M:

git comit -m "Primul meu comitet"

Promovează cu mesaje utile, deoarece vă va ajuta să determinați ceea ce ați schimbat în acest com.

Evitați și eu mesaje generale tip " Bug-uri fixe" Dacă aveți un tracker de sarcină, puteți adăuga mesaje sub formă de " Bug fix # 234».

Bunele practici este de a utiliza numele sucursalei sau numele funcției ca prefix la raportul comitetului. De exemplu, " Managementul activelor: Funcția adăugată pentru a genera fișiere de active PDF"Este un mesaj semnificativ.

GIT identifică comitele prin adăugarea unui număr hexazecimal lung la fiecare comitere. De regulă, nu este nevoie să copiați întregul șir, pentru a determina comiterea dvs. suficient de primele 5-6 caractere.

Rețineți că în captura de ecran, primul nostru comitet este determinat de codul 8DD76FC.

Se angajează în continuare

Acum, să schimbăm mai multe fișiere după primele noastre comitete. După schimbarea lor, vom vedea că, ca urmare a executării comenzii Git Status Git, am descoperit schimbări în fișierele pe care le urmărește:

Puteți verifica modificările fișierelor de urmărire efectuate în ultimul comentariu utilizând comanda Diff Git. Dacă doriți să vizualizați modificări într-un anumit fișier, utilizați comanda GIT DIFF :

Trebuie să adăugați din nou aceste fișiere pentru a efectua modificări în urmărirea fișierelor pentru următorul comitet. Puteți adăuga toate fișierele monitorizate care rulează comanda:

Puteți evita utilizarea acestei comenzi utilizând prefixul pentru comanda Git Common, care va adăuga toate modificările fișierelor de urmărire.

Acest proces, cu toate acestea, este foarte periculos, deoarece poate dăuna proiectului. De exemplu, să spunem că ați deschis dosarul și ați schimbat-o din greșeală.

Dacă plasați selectiv fișiere, observați modificările din fiecare fișier. Dar dacă adăugați Prefix -a la comiterea dvs., toate fișierele vor fi comemate și nu veți putea identifica posibile erori.

După ce ați postat fișierele, puteți trece la comiterea. Am menționat că un mesaj pe care îl introducem folosind prefix -m poate fi asociat cu fiecare comitet.

Cu toate acestea, este posibil să introduceți un mesaj în mai multe rânduri prin utilizarea comenzii Git Common, care deschide un formular interactiv pentru înregistrare:

Management de proiect

Pentru a vizualiza istoria proiectului dvs., puteți executa următoarea comandă:

Deci, întreaga istorie a proiectului va fi afișată, care este o listă a tuturor angajamentelor și a informațiilor despre ele. Informațiile despre comitere includ codul comitetului KESH, autorul, timpul și mesajul de comutare. Există diverse opțiuni pentru jurnalul GIT, pe care îl puteți explora imediat ce cântărește conceptul de sucursală (ramură) în git.

Pentru a vedea informații detaliate despre un anumit comerț și fișiere care au fost modificate, executați următoarea comandă:

git arată.

unde aceasta este hexazecimal.asociate cu un comitet. Deoarece această lecție este concepută pentru noii veniți, nu vom lua în considerare cum să ne întoarcem la starea unui anumit comitere sau cum să controlam sucursalele.

Plasarea codului în nor

Acum că ați învățat cum să gestionați codul din sistemul dvs., este timpul să plasați codul în nor.

GitHub este o platformă foarte bine cunoscută pentru stocarea, distribuirea și gestionarea codului sursă al proiectelor deschise. Acest serviciu utilizează mulți dezvoltatori la nivel mondial, printre care există companii mari, cum ar fi Microsoft, Redhat și multe altele, și sute de dezvoltatori de multe proiecte populare.

Platforma oferă oportunități nu numai pentru a vizualiza codul și distribuția acestuia, ci și istoria versiunilor, instrumentele comune de dezvoltare, instrumentele pentru furnizarea de documente, versiuni și feedback. Și cel mai interesant lucru pe care îl puteți pune pe GiHub atât proiectele deschise, cât și cele private. În acest articol, vom analiza cum să folosim GitHub pentru a vă adapta proiectului. Deci, să spunem, GitHub pentru începători.

Deci, să spunem că aveți propriul proiect și doriți să plasați codul pe GitHub în accesul public la alți utilizatori l-au putut vedea și să participe la dezvoltare. Primul lucru pe care trebuie să-l faceți este să creați un cont.

1. Crearea unui cont

Pentru a crea un cont nou pe site deschis pagina principală GitHub și imediat puteți introduce imediat datele pentru un nou cont. Trebuie să specificați numele de utilizator, e-mail și parola:

Când completați intrarea, faceți clic pe "ÎNREGISTREAZĂ-TE GRATUIT":

În pasul următor trebuie să selectați tipul de depozit. Reportările publice sunt gratuite, dar dacă doriți să creați un depozit privat, codul de la care va fi disponibil numai pentru dvs., va trebui să plătiți 7 USD pe lună.

Contul este gata și veți fi redirecționat către pagina unde puteți crea primul dvs. proiect. Dar înainte de a putea să o faceți, trebuie să vă confirmați adresa dvs. de e-mail. Pentru a face acest lucru, deschideți căsuța poștală și urmați link-ul din scrisoarea de la GitHub.

Nu este nevoie de configurare GitHub, doar câteva clicuri cu mouse-ul.

2. Crearea unui depozit

Pe pagina care se deschide, aceasta este pagina principală pentru utilizatorii autorizați, faceți clic pe "Începeți un proiect":

Puteți iniția imediat depozitul prin crearea unui fișier Readme, pentru că trebuie să menționați o bifă "Inițializați acest depozit cu un readme" În josul paginii. De asemenea, puteți alege o licență:

Când totul este gata, selectați "Creați un proiect"Un nou proiect va fi creat cu fișierul README, care conține fișierul descriere și licență.


3. Adăugarea de sucursale

Sucursalele GitHub vă permit să lucrați cu mai multe versiuni de proiect în același timp. În mod implicit, atunci când creați un depozit, se creează o ramură principală, aceasta este principala sucursală de lucru. Puteți crea ramuri suplimentare, de exemplu, pentru a testa software-ul înainte de a fi publicat în filiala principală. Astfel, puteți dezvolta simultan un produs și puteți oferi utilizatorilor o versiune stabilă. De asemenea, puteți crea ramuri individuale pentru versiunea de programe pentru diferite sisteme.

Filiala curentă este indicată în colțul din stânga sus după cuvântul "Sucursala".Pentru a crea o nouă filială pur și simplu implementați această listă și începeți să introduceți numele:

Site-ul vă va sugera să creați o nouă ramură, selectați "Creați sucursală".

Imediat după creație, veți lucra cu doar creat de ramură.

4. Schimbați fișierele și comite

Orice modificare a fișierelor GitHub sunt făcute utilizând comitele. Comiterea este efectuată prin corelarea și descrierea acestor corecții. Acest lucru este necesar pentru a ști că și când ați schimbat și, de asemenea, facilitează urmărirea activității echipei. Cuvântul de cuvânt poate fi tradus ca "fix". Adică, putem face schimbări în mai multe fișiere și apoi să le rezolvăm. Să schimbăm fișierul Readme pentru exemplu. Pentru a face acest lucru, găsiți butonul cu ciucuri în partea dreaptă a panoului și faceți clic pe acesta:

Un editor de text se va deschide, unde puteți introduce corectitudinea de care aveți nevoie:

După ce faceți tot ce aveți nevoie, trebuie să umpleți câmpul "Comite" În josul paginii. Descrieți pe scurt ceea ce a fost modificat și apoi faceți clic pe "Commonați schimbări":

Aceste modificări vor fi introduse în ramura actuală a proiectului, deoarece acum colaborăm cu testarea, atunci schimbările vor fi trimise la aceasta.

5. Crearea interogărilor de fuziuni (solicitare de tragere)

Github pentru începători poate părea foarte dificil din cauza unor astfel de caracteristici, dar este foarte convenabil dacă vă dați seama. Cererea de confluență sau cererea de tragere este o oportunitate, datorită căruia orice dezvoltator poate cere altceva, de exemplu, Creatorul Repositoriei pentru a-și vedea codul și a adăuga-l la proiectul sau sucursala principală. Instrumentul de lucru cu cererile de fuziune utilizează instrumentul de comparație DIFF, astfel încât să puteți vedea toate modificările, acestea vor fi evidențiate de o altă culoare. Cererea de tragere poate fi creată imediat după crearea unui comitet. Să trimitem cererea de tragere din ramurile noastre de testare la cea principală. În primul rând, deschideți fila "Cerere de tragere".

Aici, faceți clic pe "Creați o solicitare de tragere":

În această fereastră puteți vizualiza toate modificările, acum vedem o linie:

6. Vizualizați și aprobați cererile de fuziune

Acum, pe aceeași filă de apeluri, tocmai am făcut o cerere pentru o fuziune și o putem lua doar făcând clic "Mergeți cererea de tragere":

Dar dacă această cerere a venit de la o altă persoană, trebuie să verificați dacă sa schimbat acolo și dacă este necesar să faceți acest lucru pentru acest lucru, faceți clic pe descrierea interogării și veți vedea o fereastră de vizualizare a schimbărilor familiare:

Codul va fi apoi importat în filiala principală, iar ramura de testare poate fi eliminată în siguranță.

7. Rapoarte de eroare

Este, de asemenea, convenabil că este posibil să utilizați GitHub nu numai pentru a dezvolta și gestiona codul, ci și pentru feedback de la utilizatori. Pe tab-ul "Emisiune" Utilizatorii pot lăsa mesaje despre problemele cu care au întâlnit atunci când se utilizează produsul dvs. Deschideți fila "Probleme"și faceți clic pe buton "PROBLEMĂ NOUĂ":

8. RELEASELOR

Acesta din urmă pe care îl vom considera astăzi sunt eliberate. Atunci când produsul a ajuns la o anumită etapă, puteți elibera o versiune utilizatorilor și puteți fi siguri că totul este stabil acolo și nimeni nu a rupt nimic rău de tragere în Master. Mai întâi trebuie să mergeți la pagina principală a proiectului, apoi pe fila "Eliberăs":

Pe această pagină trebuie să specificați versiunea în câmp. "Versiunea tag", apoi numele eliberării și o descriere mică. Dacă ați compilat arhive cu binar, atunci trebuie, de asemenea, să se atașeze aici. Apoi apasa "Creați lansare":

După crearea eliberării, o astfel de pagină va fi creată:

Concluzii

În acest articol, am revizuit cum să folosim GitHub pentru a găzdui și gestiona proiectul nostru. Întregul sistem este în limba engleză, astfel încât cunoașterea de bază a limbii este foarte de dorit, dar chiar fără ei lucrează cu GitHub nu va fi foarte dificilă. Sper că aceste informații au fost utile pentru dvs. Dacă sunteți interesat de cum să lucrați cu git de la linie de comanda, consultați articolul pentru începători.

Introducere detaliată la locul de muncă cu git

Ce este git și de ce este eu?

GIT este un sistem distribuit de control al versiunii, care vă permite să salvați toate modificările introduse în fișierele stocate în depozit. Modificările sunt stocate sub formă de instantanee, numite comite care pot fi plasate pe multe servere. Luați în considerare acest nor standard pentru backup-uri pe steroizi - nu numai că veți restabili codul în cazul unei defecțiuni, ci și pentru a relua codul la oricare dintre stările salvate anterioare. De asemenea, puteți interacționa cu ușurință cu alți dezvoltatori - din nou, deoarece câțiva oameni pot lucra pe un dosar în Google Docs, iar dezvoltatorii pot lucra simultan pe un depozit și pot menține schimbările.

Având în vedere toate avantajele sale, GIT este un instrument indispensabil pentru toți cei care o face sau se va dezvolta. În acest articol vom examina cele mai utile comenzi gigate și situația în care merită să fie folosită. De asemenea, va ajuta la reîmprospătarea cunoștințelor lor dacă sunteți deja familiarizat cu Git.

Cum să lucrați cu git

O mulțime de comenzi sunt disponibile în Git, deci este util să le împărțiți pe subiect / motiv de utilizare. În primul rând, ne vom uita la locul de muncă cu git pe mașina locală, deoarece majoritatea operațiunilor apar exact acolo și apoi să ne întoarcem la un format multiplayer.

Cu git puteți lucra atât prin linia de comandă, cât și prin interfață grafică Cum ar fi desktopul GitHub. Deși dezvoltatorii începători ai liniei de comandă pot sperie, este mai bine să studiezi, deoarece oferă mai multe oportunități decât multe instrumente cu interfața.

De regulă, echipele git iau tipul de git<команда> <аргументы> unde argumentul poate fi calea către dosar. Echipele pot fi, de asemenea, opțiuni care sunt indicate ca -<опция> sau -<однобуквенная опция> . Ele vă permit să configurați acțiunile de comandă în detaliu. În acest articol, echipa va fi prezentată în general, deci totul este în<> Va trebui să înlocuiți propriile sensuri.

Dacă nu știți cum să utilizați comanda, puteți deschide ghidul utilizând Help Git<команда> , și dacă aveți nevoie doar de un memento, utilizați git<команда> -h sau git.<команда> --Help (--Help și -H sunt echivalente).

Pregătirea gitului.

Instalarea git.

Utilizatorii Windows îl pot descărca de aici.

MacOS (OS X) Git vine ca parte a instrumentelor liniei de comandă XCODE, deci trebuie să le instalați. Pentru a verifica disponibilitatea GIT, deschideți terminalul și introduceți-l pe bandajul GIT pentru a verifica versiunea.

Dacă utilizați Linux, utilizați Sudo Apt Install Install Git-All Command sau Sudo DNF Instalați Git-All (Bazat pe RPM).

Configurarea fișierului de configurare

Primul lucru pe care trebuie să-l faceți după instalarea git este de a configura numele de utilizator și e-mailul, deoarece sunt folosite pentru a identifica și stocate în toate fotografiile pe care le-ați luat. Aceste setări sunt stocate în fișierul de configurare cu tot restul.

Puteți edita direct fișierul folosind un editor de text, fie utilizând comanda git config --global-edit și puteți edita câmpuri separate utilizând comanda git config --global<поле> <значение> - Suntem interesați de numele de utilizator și de utilizator.email.

De asemenea, puteți configura un editor de text pentru a scrie mesaje comite folosind câmpul Core.editor. Utilizează inițial editorul de sistem implicit, de exemplu, VI pentru Linux / Mac. Câmpul comiter.template vă permite să specificați șablonul care va fi utilizat la fiecare com.

Există multe alte domenii, dar unul dintre cele mai utile este alias, care leagă echipa la pseudonim. De exemplu, git config --global alias.t "stare -s" vă permite să utilizați git st în loc de status git -s

Comanda git config --list va afișa toate câmpurile și valorile lor din fișierul de configurare.

Creați depozitare git

Pentru a inițializa noul depozit. Comanda GIT Init poate fi utilizată sau dacă doriți să copiați clona existentă, git<адрес репозитория> .

Istoria comisă în git

Git stochează datele sub forma unui set de "instantanee" ușoare cunoscute ca comitete. Acestea stochează starea sistemului de fișiere la un moment dat, precum și un indicator al comiterii (i) anterioare (e). Fiecare comitet conține un control unic - un identificator pe care GIT îl utilizează pentru a se referi la comiterea. Pentru a urmări povestea, Git stochează pointerul capului, ceea ce indică primul comitet (urmăm lanțul de comitere în ordine inversă pentru a ajunge la angajamentele anterioare).

Ne putem referi la comiterea fie prin intermediul controlului său, fie prin poziția sa față de cap, de exemplu, capul ~ 4 se referă la comiterea, care este de 4 comitezi mai devreme decât capul.

Sistemul de fișiere git.

Git urmărește fișierele în trei secțiuni principale:

  • directorul de lucru (sistemul de fișiere al calculatorului dvs.);
  • zona fișierelor pregătite (zona de staționare stochează conținutul următorului comitet);
  • (Ultimul angajat în depozit).

Toate fișierele importante pentru lucrul cu fișierele sunt reduse la înțelegerea modului în care GIT controlează aceste trei secțiuni. Există o concepție greșită comună că zona fișierelor pregătite stochează numai schimbări. Este mai bine să ne gândim la aceste trei secțiuni ca fiind separate sisteme de fișiereFiecare dintre acestea conține copii ale fișierelor.

Vizualizați modificările în sistemele de fișiere

Comanda de stare GIT afișează toate fișierele care diferă între trei secțiuni. Fișierele au 4 state:

  1. Unteragiat (netratat) - este în directorul de lucru, dar nu există o versiune în cap sau în câmpul fișierelor pregătite (GIT nu știe despre fișier).
  2. Modificat (modificat) - Există o versiune mai nouă în directorul de lucru, comparativ cu capul stocat sau în câmpul fișierelor pregătite (modificările nu sunt în următorul COM.
  3. Pregătit (STAGED) - Există o versiune mai nouă în directorul de lucru și în zona fișierelor pregătite comparativ cu capul (gata pentru comitere).
  4. Fără schimbare - o versiune a fișierului în toate secțiunile, adică, în ultimele comisioane conțin versiunea curentă.

Notă Fișierul poate fi simultan "modificat" și "pregătit" dacă versiunea din directorul de lucru este mai nouă decât în \u200b\u200bcâmpul fișierelor pregătite, care la rândul său este versiunea mai nouă în cap.

Putem folosi opțiunea -S pentru comanda de stare GIT pentru a obține o ieșire mai compactă (pe linia din fișier). Dacă fișierul nu este urmărit, atunci va fi afișat? ; Dacă a fost schimbat, numele lui va fi roșu și, dacă este pregătit - verde.

Pentru a vedea schimbările în sine și nu au schimbat fișiere, puteți utiliza următoarele comenzi:

  • git Diff - compararea directorului de lucru cu zona fișierelor pregătite;
  • git diff --staged - compararea zonei fișierelor preparate cu cap.

Dacă utilizați un argument<файл/папка> , Diff va afișa modificări numai pentru fișiere / foldere specificate, cum ar fi git Diff SRC /.

Actualizarea sistemului de fișiere

Echipa Git Adăugați<файл/папка> Actualizează zona fișierelor / fișierelor Filed Filed din directorul de lucru.

Comanda Git Commit actualizează capul cu un nou comitet, care face fotografii ale fișierelor din zona fișierelor pregătite.

Git Reset acțiunea de comandă<коммит> Constă din trei etape potențiale:

  1. Mișcați indicatorul capului la<коммит> (De exemplu, când Rollback concurează în directorul de lucru și zona fișierelor pregătite vor fi mai multe versiuni noi de fișiere decât în \u200b\u200bcap). De asemenea, indicatorul șef al sucursalei va fi mutat la acest comitet.
  2. Actualizați zona de fișiere pregătite prin conținutul comitetului. În acest caz, numai în directorul de lucru va fi cele mai noi versiuni Fișiere.
  3. Actualizați conținutul directorului de lucru al zonei fișierelor pregătite. Trebuie să fiți atenți la acest lucru, deoarece schimbările de fișiere vor fi în cele din urmă distruse.

În mod prestabilit, comanda GIT RESET efectuează numai pașii 1 și 2, dar comportamentul său poate fi modificat utilizând opțiunile - numai 1 pas) și --Hard (toți pașii).

Dacă trimiteți calea către fișier / dosar, comanda va fi efectuată numai pentru acestea, de exemplu Git Reset - HeadSoft Head ~ 1 SRC /.

Echipa Git Checkout Head<файл> duce la același rezultat ca git resetare --hard. Cap.<файл> - suprascrie o versiune a fișierului în domeniul fișierelor pregătite și în directorul de lucru al versiunii capului, adică anulează modificările după ultimul comitet.

Pe de altă parte, Git Checkout<файл> (Deja fără cap) suprascrie versiunea de fișiere din directorul de lucru al versiunii din domeniul fișierelor pregătite, adică, anulează modificările de la ultima versiune pregătită.

În cele din urmă Git Rm.<файл> Anulează urmărirea fișierului și șterge-o din directorul de lucru, opțiunea --Cached va salva fișierul.

Ignorarea fișierelor

Adesea, nu avem nevoie de GIT pentru a urmări toate fișierele din depozit, deoarece numărul lor poate include:

  • fișiere cu informații sensibile cum ar fi parolele;
  • fișiere binare mari;
  • fișierele de asamblare generate după fiecare compilație;
  • fișiere OS / IDE, de exemplu, .Ds_store. Pentru MacOS Or. .iml. pentru Ideea Intellij. - Avem nevoie de depozitare cât mai puțin posibil din sistem.

Pentru a ignora fișierul .GiGignore. Pentru a marca fișierele pe care vrem să le ignorăm, puteți utiliza modelele de căutare (luați în considerare expresiile regulate simplificate):

  • / ___ - evită recursivitatea - îndeplinește fișiere numai în directorul curent;
  • __ / - îndeplinește toate fișierele din directorul specificat;
  • * ___ - îndeplinește toate fișierele cu sfârșitul specificat;
  • Fotografiile! - ignorarea fișierelor care se încadrează sub modelul specificat;
  • [__] - corespunde oricărui caracter de la cele specificate în paranteze pătrate;
  • ? - corespunde oricărui simbol;
  • / ** / - corespunde directoarelor imbricate, de exemplu, A / ** / D corespunde A / D, A / D, A / B / C / D etc., și așa mai departe.

Putem folosi chiar modelele de căutare atunci când specificați un fișier / dosar în alte comenzi. De exemplu, Git Adăugați SRC / *. CSS va adăuga toate fișierele. CSS în dosarul SRC.

Angajatul

Deoarece comitele sunt baza istoriei versiunilor, nu va fi superfluă să învețe despre ei puțin mai mult.

Comanda Git Commit va deschide un editor de text pentru a introduce mesaje comite. De asemenea, această echipă ia mai multe argumente comune:

  • -M vă permite să scrieți un mesaj cu echipa fără a deschide editorul. De exemplu, git comit-cal "sac de fixare";
  • -a transferă toate fișierele monitorizate în zona fișierelor pregătite și le include în commot (vă permite să treceți la adăugarea GIT înainte de comitere);
  • --Amend înlocuiește ultimul angajat la un nou angajat modificat, care este util dacă ați scris în mod incorect mesajul ultimului comitet sau ați uitat să includeți câteva fișiere în ea.

Mai multe sfaturi la care merită ascultare:

  • Comitetul de multe ori: nu veți putea să reluați modificările dacă vă întoarceți la ce.
  • O schimbare este o comitere: Nu puneți toate schimbările într-un comite, împărțiți-le astfel încât să fie mai ușor să se rotească înapoi.
  • Formatul mesajului: Titlul ar trebui să fie într-o aprindere imperativă, mai puțin de 50 de caractere și ar trebui să completeze logic expresia acestui comitet ___ (acest comitet va repara bug-uri - acest comitet va repara bug-uri). Mesajul ar trebui să explice de ce sa făcut angajarea, iar comiterea însăși arată ceea ce sa schimbat. Programată în detaliu cum să scrieți mesaje pentru comitete.
  • (Opțional) Nu comite schimbări minore: Într-un depozit mare, multe comite mici pot clog istoria. Este considerat un ton bun să facă astfel de angajamente atunci când se dezvoltă și când le adăugați într-un depozit mare pentru a le combina într-un singur comitet.

Vizualizați modificările din istorie

Puteți utiliza comanda Jurnal Git pentru a vizualiza istoricul comitetelor anterioare în ordine cronologică inversă. Ea poate transmite diferite opțiuni:

  • -p prezintă modificările din fiecare com.
  • --Stat arată statistici abreviate pentru comitete, cum ar fi fișierele modificate și numărul de șiruri de telecomenzi în fiecare dintre acestea;
  • -N spectacole n. comitele recente;
  • --Since \u003d ___ și-until \u003d ___ vă permite să filtrați comitetele cu o perioadă de timp, de exemplu --Since \u003d "2019-01-01" va afișa comitete de la 1 ianuarie 2019;
  • --Pretty vă permite să specificați formatul jurnalului (de exemplu, --pretty \u003d oneline), puteți utiliza și - Format pentru o mai mare personalizare, de exemplu - Procretty \u003d Format: "% h% s";
  • - filtrul Greg și -s se angajează cu mesaje / cod de schimbare care conțin șirul specificat, de exemplu, git log -s_name_name vă permite să vizualizați adăugarea / ștergerea funcției;
  • - Numărul de trecere se angajează cu ramuri de fuziune;
  • vETA1..TELL2 vă permite să vedeți ce angajamente din ramură 2 nu sunt în ramura 1 (utile atunci când fuzionează ramurile). De exemplu, git log master .. cel mai mult va arăta ceea ce comitele de la ramura de testare nu sunt în maestru (discutați cu ramurile puțin mai târziu).
  • - ramură dreapta-dreapta1 ... BRANCH2 prezintă comenzi care sunt fie într-o ramură 1, fie într-o ramură 2, dar nu atât în \u200b\u200bambele; semn< обозначает коммиты из ветка1 , а > - de la ramură2. Încărcați atenție: sunt folosite trei puncte, nu două;
  • -L acceptă un argument de început, sfârșitul: fișier sau: fișier: fișier și afișează istoricul modificărilor la rândul de trecere sau funcția în fișier.

O altă echipă utilă este git gina<файл> , care pentru fiecare linie de fișiere arată autorul și valoarea de control a ultimului comitet, care a schimbat acest șir. - l.<начало>, <конец> Vă permite să limitați această comandă la rândurile specificate. Acest lucru poate fi folosit, de exemplu, pentru a afla ce comitete au condus la un anumit bug (astfel încât să vă puteți întoarce).

În cele din urmă, există o comandă GIT GREP care caută toate fișierele în istoria comiterii (și nu numai în directorul de lucru ca GREP) în funcție de expresia regulată specificată. Opțiunea -N Afișează numărul de linie corespunzător din fișier pentru fiecare meci și - codul arată numărul de meciuri pentru fiecare fișier.

Notă Nu confunda Git Gret cu Git Log --Grep! Primul caută fișiere între comenzi, iar acesta din urmă se uită la mesajele jurnalului.

Servere la distanță

Până acum, am discutat despre utilizarea gitului numai pe mașina locală. Cu toate acestea, putem stoca istoricul angajamentului depozitelor la distanță, care pot fi monitorizate și actualizate (luați în considerare backup-urile lor de la distanță ale istoriei comitetului nostru).

Comanda GIT la distanță-V afișează o listă de depozite la distanță pe care le urmăm și numele pe care le-am alocat.

Când utilizați comanda git clone Nu numai că vă încărcăm o copie a depozitului, ci și implicit urmăriți server la distantacare este situat adresa specificată Și care i se atribuie originea de nume.

Cele mai consumabile comenzi:

  • git la distanță adăugați.<имя> - adaugă un depozit la distanță cu numele specificat;
  • git îndepărtați la distanță.<имя> - elimină un depozit la distanță cu numele specificat;
  • git redenumire la distanță.<старое имя> <новое имя> - redenumiți depozitul la distanță;
  • git set-URL de la distanță<имя> - atribuie un depozit numit o nouă adresă;
  • git spectacol de la distanță.<имя> - Afișează informații despre depozit.

Următoarele comenzi funcționează cu ramuri îndepărtate:

  • git Fetch.<имя> <ветка> - primește date din ramura depozitului specificat, dar nu îmbină modificările;
  • git trage<имя> <ветка> - îmbină datele din ramura depozitului specificat;
  • git push.<имя> <ветка> - trimite modificări ale ramurii depozitului specificat. Dacă ramura locală urmărește deja telecomanda, atunci puteți utiliza doar git push sau git trageți.

Astfel, mai mulți oameni pot solicita modificări de la server, făcând schimbări în copiile locale și apoi le trimite la un server de la distanță, care vă permite să interacționați între ele într-un singur depozit.

Sucursală

Toate acestea sunt bune și excelente dacă fiecare dezvoltator lucrează la un proiect la momente diferite. Diagramele prezentate mai sus au strămutat doar situații cu o schimbare în depozitul original sau copia locală, dar nu și munca mai multor oameni.

Ne conduce la particularități cheie Git - oportunități de ramificare de a lucra la diferite versiuni Proiect. Acest lucru înseamnă că, în loc de o listă cu comitete comandate, povestea se va deosebi la anumite puncte (ceea ce îl face similar cu copacul). Fiecare ramură din Git conține un cap de lumină al capului până la ultima comitere din acest fir, care vă permite să creați o mulțime de ramuri fără costuri suplimentare. Sfat: Apelați o sucursală în conformitate cu funcționalitatea dezvoltată în acesta. Sucursala implicită este numită Master.

Deci avem un indicator general Cap. Și capul pentru fiecare ramură. Astfel, comutarea între ramuri implică doar mișcarea Cap. În capul ramurii corespunzătoare.

Echipe standard:

  • ramura git.<имя ветки> - Creează o nouă ramură cu capul indicând Cap.. Dacă nu transmiteți argumentul<имя ветки> , echipa va afișa o listă a tuturor ramurilor locale;
  • git checkout.<имя ветки> - Comută la această ramură. Puteți trece opțiunea -B pentru a crea o nouă ramură înainte de comutare;
  • git sucursală -d.<имя ветки> - Îndepărtează ramura.

Deoarece depozitul nostru local, și la distanță, pot avea o mulțime de ramuri, așa că atunci când urmăriți un depozit la distanță, monitorizați de fapt o ramură îndepărtată (Git Clone aduce sucursala principală la filiala de origine / master a depozitului la distanță).

Legarea la ramura îndepărtată:

  • git ramură -u.<имя удалённого репозитория>/<удалённая ветка> - se leagă sucursala curentă la ramura la distanță specificată;
  • git Checkout --Track.<имя удалённого репозитория>/<удалённая ветка> - analogul comenzii anterioare;
  • git checkout -b.<ветка> <имя удалённого репозитория>/<удалённая ветка> - creează o nouă ramură locală și începe să urmărească telecomanda;
  • gIT BRANCH - VV - prezintă ramuri la distanță locale și monitorizate;
  • git checkout.<удалённая ветка> - Creează o ramură locală cu același nume ca și telecomanda și începe să o urmărească.

În general, Git Checkout este asociat cu o locație a locului care indică capul ramurilor, care arată ca resetarea git mișcă capul general.

Hipete și curățenie

Există o subtilitate - când comutarea ramurilor GIT necesită ca starea de lucru să fie curată, adică toate modificările din fișierele de urmărire trebuie fixate.

Aproximativ. Traduceți Acest lucru nu este așa. În anumite circumstanțe, GIT poate transfera automat schimbarea neîncetată la o altă ramură.

Cu toate acestea, uneori aveți modificări neterminate care nu pot fi fixate. Într-o astfel de situație, ele pot fi salvate și "ascunde" folosind comanda git stash. Pentru a returna modificările, utilizați Git Stash Aplicați.

Poate că doriți să ștergeți toate modificările făcute. În acest caz, utilizați comanda Git Clean. Opțiunea -D va șterge, de asemenea, fișiere necalificate. Sfat: Adăugați opțiunea -n pentru a vedea ce se întâmplă atunci când porniți Git curat fără utilizarea directă.

Combinând sucursalele

După ce am discutat despre ce ramuri sunt și atât între ele, este timpul să vorbim despre modul în care acestea pot fi combinate după dezvoltare. Filiala în care dorim să îmbină schimbări va fi numită principală, iar sucursala de la care le vom îmbina - tematică. Există două modalități de a face schimbări de la o sucursală la alta: fuzionarea și mutarea.

Fuziune

Acesta include crearea unui nou comitere, care se bazează pe un strămoș general de începere a două ramuri și indică ambele cap ca și comitetele anterioare. Pentru fuziune, mergem la ramura principală și folosim comanda GIT Merge<тематическая ветка> .

Dacă ambele ramuri schimbă aceeași parte a fișierului, apare conflictul de conflict - situația în care GIT nu știe ce versiune a fișierului să salveze, deci este necesar să rezolvăm conflictul personal. Pentru a vedea fișierele conflictuale, utilizați starea git.

După deschiderea unor astfel de fișiere, veți vedea marcaje similare de rezolvare a conflictelor:

<<<<<<< HEAD:index.html Everything above the ==== is the version in master. ======= Everything below the ==== is the version in the test branch. >\u003e\u003e\u003e\u003e\u003e\u003e Test: index.html

Înlocuiți în acest bloc totul pe versiunea pe care doriți să o părăsiți și pregătiți fișierul. După rezolvarea tuturor conflictelor, puteți utiliza angajamentul Git pentru a finaliza îmbinarea.

Mișcare

În loc să combine cele două ramuri ale Comitetului de fuziune, se mișcă reproduce comitetele filialei tematice sub forma unui set de noi comitete ale ramurii de bază, care este turnată într-o istorie mai curată de comitete.

Comanda git rebse este utilizată pentru a vă deplasa<основная ветка> <тематическая ветка> care reproduce modificările filialei tematice pe cea principală; Sucursala tematică a capului indică ultimul comitet reprodus.

Mutați vs. fuziune

După fuzionarea jurnalului cu o poveste poate arăta destul de aleator. Pe de altă parte, mișcarea vă permite să rescrieți povestea într-o formă normală și consecventă.

Deci, de ce aveți nevoie de o fuziune dacă puteți folosi tot timpul în mișcare? Din păcate, mișcarea nu este un panaceu din bușteni confuzi, deoarece comitetele strămutate diferă de fapt de original, deși au același autor, mesajul și schimbarea.

Imaginați-vă un scenariu:

  • În ramura dvs., creați mai multe angajamente și îmbinați-le în filiala principală.
  • Altcineva decide să lucreze pe baza comitetelor dvs.
  • Voi decideți să vă mutați comitele și să le trimiteți la server.
  • Când cineva încearcă să-și îmbine lucrarea pe baza comitetelor inițiale, în cele din urmă vom primi două ramuri paralele cu un singur autor, mesaje și schimbări, dar prin alte comite.

Prin urmare, aici este Consiliul:

Mutați modificările numai pe ramura locală privată - nu mutați comitele pe care depinde altcineva.

Comitetul Rollback - Reveniți și resetați

Dezbateri similare despre ceea ce este mai bine de utilizat, apar atunci când doriți să reluați comisia. Echipa Git revin.<коммит> Creează un nou comitere, anularea modificărilor, dar păstrează istoria, în timp ce Git Reset<коммит> Mută \u200b\u200bindicatorul capului oferind o istorie mai curată (ca și cum acest comitet nu sa întâmplat niciodată). Este important să rețineți că, de asemenea, că nu veți mai reveni la aceste modificări, de exemplu, dacă încă decideți că anularea comitetului nu a fost necesară. Cleaner - nu înseamnă mai bine!

Rezuma

În acest stadiu, aveți aproape tot ce aveți nevoie pentru a lucra cu Git. Mai jos vor fi câteva sfaturi avansate (opționale) avansate pentru un control mai mare asupra comitelor și istoriei. În plus, atunci vom afecta ocazional GitHub - una dintre cele mai renumite platforme care lucrează cu GIT, care vă poate fi utilă.

Github.

GitHub este o platformă care stochează depozitul GIT pe mai multe servere. Ca utilizator GitHub, puteți stoca depozitele de la distanță pe serverele lor, precum și să contribuie la un alt depozit open source. GitHub completează utilizarea gitului cu câteva caracteristici noi.

De exemplu, puteți face un depozit la distanță de la distanță, adică să vă creați copia depozitului în nordul orașului GitHub. Acest lucru este util în cazurile în care nu aveți dreptul de a crea o sucursală în depozitul original. Când utilizați comanda Git Clone, depozitul dvs. local va urmări formularul la distanță ca origine și depozitul original ca în amonte.

După aceea, este posibil să trebuiască să scurgeți ramura tematică a depozitului dvs. la distanță în ramura principală a originalului. Pentru a face acest lucru, puteți crea o nouă solicitare de tragere - o cerere de efectuare a modificărilor, unde GitHub verifică prezența conflictelor înainte de a vă prezenta să conduceți o îmbinare. Adesea există și alte verificări înainte de a fuziona, cum ar fi vizualizarea și aprobarea codului sau chiar a testelor de lansare. În cadrul interogării, puteți discuta codul, iar toate comitele pe care le trimiteți la sucursala tematică la distanță vor fi adăugate automat la cerere, chiar dacă a fost creat înainte de aceste comite.

Utilizare avansată: Pregătirea interactivă

Puteți gestiona cu ușurință zona de fișiere preparate (de exemplu, la fixarea mai multor comite mici în loc de un mare) utilizând o consolă interactivă pe care Git Adăugați -i poate fi lansată. 8 echipe disponibile în ea:

  • status - arată o scurtă descriere pentru fiecare fișier care (nu) pregătit;
  • actualizare - pregătește fișiere de urmărire;
  • reveniți - eliminați unul sau mai multe fișiere din zona pregătită;
  • adăugați netrated - pregătește dosarul necalificat;
  • patch - pregătește doar o parte a fișierului (util atunci când, de exemplu, ați schimbat mai multe funcții, dar doriți să întrerupeți modificările în mai multe comitete). După selectarea fișierului, vi se va arăta fragmente și prezentate comenzi posibile: etapă această bucată? . Pot intra? pentru a afla ce face fiecare echipă;
  • diff - afișează o listă de fișiere pregătite și vă permite să vizualizați modificări pentru fiecare dintre acestea;
  • quit - iese din consola interactivă;
  • ajutor - Afișează o scurtă descriere a fiecărei echipe.

Simbolul * de lângă fișier înseamnă că comanda va schimba starea acestuia (preparată / nepregătită în funcție de faptul dacă apare actualizarea sau redulizarea). Dacă apăsați Enter fără a intra în nimic în nici unul din meniul de comandă, toate fișierele vor trece la starea (nr).

Vă rugăm să rețineți că crearea de patch-uri (pregătirea unei părți a fișierului) este disponibilă nu numai în consola interactivă, ci și prin comanda GIT ADD -P.

Utilizare avansată: Istoric reguli

Pentru un control mai mare asupra istoriei comiterii filialei locale, puteți utiliza comanda git rebază -i cap ~ n. care va deschide consola interactivă pentru mutarea setului de acesta din urmă n. Comitele enumerate în ordine de la vechi la noi (adică în ordinea în care vor fi mutați). Deci, puteți să "editați istoria", dar amintiți-vă că comitele originale nu pot fi modificate, numai pentru a vă deplasa.

Puteți schimba ordinea comitelor prin modificarea ordinului în care sunt enumerate.

Schimbați comiterea mesajului / vânzărilor

Pentru a specifica comisia pe care doriți să o modificați, este utilizată comanda de editare. Apoi, când Git se va mișca, se va opri la acest com. După aceasta, puteți utiliza comitetul GIT - Ind pentru a schimba mesajul sau pentru a pregăti fișiere uitate. Dacă doriți să împărțiți comotul, după oprire, introduceți capul de resetare GIT ^ (ca rezultat al capului, acesta va fi mutat la un comitet înapoi și toate fișierele s-au schimbat în acest sens. Apoi, puteți repara fișierele în comitele individuale în mod obișnuit.

După finalizarea editării, introduceți git rebază --Continue.

Suprascrie mai multe comitete

Uneori este posibil să fie nevoie să suprascrie mai multe comitete - în astfel de cazuri puteți utiliza git filtru-ramură. De exemplu, pentru a șterge un fișier înregistrat la întâmplare, puteți introduce Git Filter-BRANCH-FILTER "git rm -f<имя файла>"Capul. Cu toate acestea, considerați că, în același timp, întreaga poveste se mișcă.

Combinând mai multe comitete

În timpul lucrului optiune noua În proiect puteți înregistra treptat chiar și cele mai mici schimbări ale ramurii tematice. Cu toate acestea, din acest motiv, istoria este înfundată de astfel de comite mici, care pot contrazice regulile proiectului. Acest lucru poate fi corectat prin combinarea mai multor comitete la unul mare. Pentru a face acest lucru, utilizați mai întâi comanda Pick pentru a selecta primul comitet și apoi squash pentru ulterior. Git va aplica toate modificările într-o singură începere și vă va cere să editați mesajul comitetului general.

Transferați un commot separat

În plus față de fuziunea / mișcarea tuturor comitelor în filiala tematică, puteți fi interesat doar de un anumit comitet. Să presupunem că aveți o sucursală locală în care lucrați la mai multe articole potențiale, dar doriți să publicați doar unul dintre ele. Pentru a face acest lucru, puteți utiliza comanda Git Cherry-Pick. Pentru a obține anumite comitete de la care vrem să alegem, puteți utiliza git jurnal<основная ветка>..<тематическая> .

Vă rugăm să rețineți că în acest mod este creat un nou comitet, ceea ce repetă numai difful comitetului selectat (adică diferența dintre acest comitet și cea precedentă), dar nu starea acesteia.

Concluzie

Așa că am revizuit conceptele de bază ale GIT. Puteți utiliza acest articol ca o scurtă carte de referință și puteți citi cartea "pro git", care este mult mai mult (~ 450 de pagini) și descrie mai profund git.

Doriți să săpați mai adânc în Git, dar aveți puțin (sau viceversa, o mulțime) de o carte mare? Atunci ar trebui să te uiți la noi.

Confruntarea schimbărilor - caracteristica principală a unei persoane. Dacă într-o perioadă când ați început să lucrați cu sistemele de control al versiunilor, nu a existat nici un git - este foarte probabil că ați început cu subversiunea. Adesea, oamenii spun că GIT este prea complicată pentru începători. Cu toate acestea, îmi voi permite să nu fiu de acord cu tine.

În acest articol, vă voi spune cum să utilizați Git în lucrul cu proiectele dvs. Presupunem că creați un proiect de la zero și doriți să utilizați Git ca sistem de control al versiunii. După ce ați citit comenzile principale, vom citi cum vă puteți stabili codul pe GitHub.

Acest articol va vorbi despre lucrurile de bază - cum să inițializați proiectul, cum să gestionați fișierele noi și existente și cum să vă stocați codul în nor. Vom reduce unele lucruri complexe precum ramificarea, deoarece articolul este orientat pe începători.

Instalarea git.

Pe site-ul oficial Git este pe diverse sisteme - Linux, Mac, Windows. În cazul nostru, vom folosi Ubuntu 13.04, iar Git vom fi instalați prin intermediul apt-get.

Sudo apt-get instalare git

Configurare inițială

Creați un director în care vom lucra. De asemenea, puteți utiliza GIT pentru a lucra cu un proiect existent și, în acest caz, nu veți crea un director de demonstrație așa cum este descris mai jos.

Mkdir my_git_project cd my_git_project

În primul rând, este necesar să se inițieze depozitul GIT din directorul proiectului. Puteți face acest lucru prin comanda Init, care creează un director.Git cu toate informațiile despre proiectul dvs.

Git config - global user.name "Shumik" git config --global user.email " [E-mail protejat]"Git config --global color.ui" auto "

Este demn de remarcat faptul că, dacă nu specificați adresa dvs. și numele, atunci vor fi utilizate valorile implicite. În cazul nostru, valorile implicite vor fi Donny și [E-mail protejat]

De asemenea, setăm culoarea interfeței la valoarea automată, astfel încât ieșirea comenzilor git va fi culoarea. Adăugam prefixul -global la aceste comenzi, astfel încât aceste valori să fie utilizate în întregul sistem și nu a fost nevoie să le setați pentru fiecare proiect individual.

Pregătirea fișierelor comite

Următorul pas vom crea mai multe fișiere. Puteți utiliza orice editor de text pentru acest lucru. Rețineți că dacă inițializați git într-un proiect existent, nu este nevoie să faceți acest pas.

Verificați starea depozitului

Acum că există fișiere în proiectul dvs., să vedem cum se adresează gitului. Pentru a verifica starea de depozit curent, utilizați comanda de stare GIT.

Adăugați fișiere la git

În acest stadiu, GIT nu urmează unul dintre fișierele noastre. Este necesar să adăugați în mod specific fișiere la git, astfel încât să se întâmple. Pentru a face acest lucru, utilizați comanda Adăugați.

Git adaugă my_file.

După verificarea stării depozitului, vedem că unul dintre fișiere a fost deja adăugat la acesta.

Pentru a adăuga mai multe fișiere, folosim următoarele (Observați că am adăugat primul fișier mai devreme, așa că adăugăm doar celelalte două).

Git adaugă myfile2 myfile3

Puteți utiliza git adăugați recursiv, dar aveți grijă de această comandă. Există câteva fișiere (de exemplu, compilate programe) care nu ar trebui adăugate la sistemul de control al versiunii. Dacă utilizați Git Adăugați recursiv, astfel de fișiere vor cădea și în depozit.

Sterge fisierele

Imaginați-vă că ați adăugat accidental un fișier la depozit, care nu ar fi trebuit să ajungă acolo. Sau doriți să eliminați orice fișier din sistemul de control al versiunii. În general, comanda GIT RM nu va șterge pur și simplu fișierul din depozit, dar, de asemenea, o șterge fizic de pe disc. La git opriți urmărirea fișierului, dar a rămas pe disc, utilizați următoarea comandă:

Git RM - Cased [Nume fișier]

Commimim se schimbă

Odată ce ați adăugat toate fișierele necesare, puteți să le comentați (fixați) în git. Imaginați-vă că comiterea este un instantaneu al statutului proiectului la o anumită etapă la care vă puteți întoarce în orice moment și vedeți starea proiectului în acel moment. La fiecare comitet, un mesaj este asociat că argumentul este setat după prefixul -m

Git comit -m "Primul meu comitet"

Specificați un mesaj care va conține informații utile, deoarece acestea ajută la înțelegerea a ceea ce sa schimbat în cadrul acestui comitet. Evitați câteva mesaje comune, cum ar fi "regulile de bug-uri". Dacă aveți un tracker Bug, puteți specifica un tip de mesaj "Bug # 123". Bună practică - indicați numele ramurii sau îmbunătățirii. De exemplu, "Managementul activelor - a adăugat capacitatea de a genera PDF pe baza activului" - un mesaj clar și inteligibil.

GIT determină numărul de hexazecimal lung al comunei. De obicei, nu este nevoie să copiați întreaga linie, primele 5-6 caractere suficiente pentru a identifica un anumit comitet. În captura de ecran, se poate observa că comisia noastră este identificată de numărul 8DD76FC.

Se angajează în continuare

Să schimbăm mai multe fișiere după ce le-am compedem. După ce le-am schimbat, statutul GIT va raporta că am schimbat fișierele.

Puteți vedea ce sa schimbat în aceste fișiere de la comitetul anterior, folosind comanda Diff Git. Dacă doriți să vizualizați modificări pentru un anumit fișier, puteți utiliza Diff Git<файл> .

Este necesar să indexați modificările și să le comutați. Toate fișierele de proiect modificate pot fi adăugate la următoarea comandă către comitere:

Puteți evita utilizarea acestei comenzi dacă adăugați un parametru la Git Commit. Această comandă indexează toate fișierele modificate și le comiază. Dar această abordare poate fi destul de periculoasă, deci din greșeală puteți comemia faptul că nu am vrut. De exemplu, să spunem că ați deschis dosarul și ați schimbat accidental. Când indexați fișierele modificate, veți fi notificat cu privire la modificările din fiecare fișier. Dar dacă trimiteți toate fișierele modificate fără a vă uita la ajutor. Git comitează-o, apoi toate fișierele vor fi comise, inclusiv cele pe care nu le-ați vrut.

De îndată ce ați indexat fișiere, puteți trece la comiterea. Așa cum am menționat mai devreme, puteți specifica un mesaj către comiterea utilizând cheia -M. Dar puteți specifica, de asemenea, comentariile multi-line folosind comanda Git Commit, care deschide editorul de consolă pentru a introduce un comentariu.

Gestionarea problemelor

Pentru a vizualiza istoricul proiectului, puteți utiliza următoarea comandă:

Acesta va afișa istoricul istoric complet sub forma unei liste de comitere și informații despre acestea. Informații despre comitere conțin hash comit, autor, timp și mesaj de comutare. Există multe tipuri de echipe de jurnal git, care vor trebui să se familiarizeze în cazul utilizării ramificării în git. Pentru a vedea detaliile unui anumit comitet și a fișierelor modificate, executați următoarea comandă:

Git arată.<хеш_коммита>

unde<хеш_коммита> - Număr hex asociat cu un comitet. La fel de acest ghid. Conceput pentru începători, nu vom lua în considerare cum să returnați statul la momentul unui comitet special sau cum să controlam sucursalele.