Git și github

Git și Github. Rețete simple -13

  • 12/23/15 04:33 •
  • sunduchkov •
  • # 273897
  • Habrahabr •
  • Din nisip •
  • 10 •
  • 9600

- la fel ca Forbes, doar mai bine.

Când vă dezvoltați propriul proiect, mai devreme sau mai târziu, trebuie să vă gândiți unde să stocați codul sursă și cum să sprijiniți lucrul cu mai multe versiuni. În cazul în care lucrați pentru o companie, de obicei este decisă pentru dvs. și trebuie doar să sprijiniți regulile acceptate. Există câteva sisteme de control al versiunilor utilizate în mod obișnuit, iar noi vom analiza una dintre cele mai populare versiuni - Git și Github.

Sistemul Git a apărut ca un instrument de control al sursei în sistemul de operare Linux și a câștigat mulți fani în mediul Open Source.

Serviciul Github oferă găzduirea (stocarea) de texte sursă atât pentru plăți, cât și gratuit. Acesta este unul dintre cele mai mari sisteme pe care le iubesc utilizatorii de Open Source. Principala diferență între versiunea plătită este capacitatea de a crea depozite private (depozite) de cod sursă, iar dacă nu ai nimic de ascuns, poți folosi în siguranță versiunea gratuită.

După ce ați început să lucrați la proiect și ați scris un prototip de lucru, veți dori să salvați rezultatele lucrării. Acest lucru poate fi de asemenea util dacă doriți să continuați să lucrați pe un alt computer. Cea mai simplă soluție este să salvați totul pe o unitate flash. Această opțiune funcționează bine, dar dacă există o conexiune la Internet (și acum cine nu o are), este convenabil să folosiți sistemele Git / Github.

Acest articol va descrie scenariile de bază pentru utilizarea sistemelor Git / Github atunci când lucrează la un proiect într-un mediu Linux folosind linia de comandă. Toate exemplele au fost testate pe un sistem cu Linux Ubuntu 14.04 și Git 1.9.1. Dacă utilizați o distribuție diferită, atunci pot exista diferențe.

Crearea unui depozit local


Să presupunem că proiectul dvs. se află în dosarul / home / user / project. Înainte de a salva sursa, puteți vedea dacă există fișiere temporare în dosarul proiectului și, dacă este posibil, ștergeți-le.

Deseori, fișierele temporare conțin sufixe specifice, care pot fi ușor detectate și ulterior eliminate. Pentru a găsi astfel de fișiere, puteți utiliza comanda de căutare. De exemplu, să examinăm cum să găsim toate fișierele generate de compilatorul Python și să avem extensia .pyc

Trecem la dosarul cu proiectul / home / user / project:


Și arătați lista fișierelor cu extensia Pyc:


Această comandă va lista toate fișierele cu extensia .pyc din directorul curent și din subdirectoarele sale. Pentru a șterge fișierele găsite, adăugați comutatorul -delete la această comandă:

Creați un repositor local în dosarul proiectului:


După executarea acestei comenzi, va apărea un nou dosar numit .git. Vor fi mai multe fișiere și subdirectoare în el. În acest moment, sistemul de control al versiunii nu văd încă fișierele noastre.

Adăugarea fișierelor la un depozit local


Pentru a adăuga fișiere, utilizați comanda:


După executarea comenzii, fișierul readme va fi adăugat la sistemul de control al versiunii (desigur, dacă a avut deja acest lucru în proiect). Când adăugați un fișier, se generează o valoare hash, care arată astfel:


Fișierele adăugate sunt stocate în folderul .git / objects / xx / yyyyyyyy. primele două cifre ale hash-ului sunt folosite pentru a specifica directorul, iar restul valorii hash-ului este numele fișierului. Fișierul nostru adăugat va fi localizat aici:


Ce este ușor de văzut cu ajutorul comenzii:


Fișierul în sine este o arhivă care este ușor de dezarhivat și afișată pe ecran, indicând valoarea completă a hash-ului.


Pentru a adăuga toate fișierele din directorul curent, tastați:


Dacă doriți să adăugați fișiere din directorul curent și din toate subdirectoarele, utilizați:


Pentru a împiedica intrarea în sistem a unor fișiere temporare, le puteți adăuga în fișierul .gitignore. pe care trebuie să vă creați și să le plasați în directorul rădăcină al proiectului (la același nivel cu directorul .git).

De exemplu, dacă adăugați următoarea linie * .pyc în fișierul .gitignore. atunci toate fișierele cu extensia .pyc nu vor fi adăugate în depozit.

După adăugarea fișierelor, toate modificările se află în așa-numita zonă de staționare (sau cache). Aceasta este o unitate de stocare temporară care este utilizată pentru a acumula modificări și din care sunt create versiunile reale ale proiectelor (commit).


După executarea comenzii, vom vedea că în zona de scenă este fișierul nostru:


Dacă veți continua să faceți modificări în fișierul readme. atunci după apelarea comenzii de stare git, veți vedea două versiuni ale fișierului.


Pentru a adăuga noi modificări, repetați comanda. Comanda git add adaugă nu numai fișiere noi, ci și orice modificări ale fișierelor adăugate anterior.


Puteți anula adăugarea fișierului readme în zona de așteptare folosind comanda:


După executarea comenzii, fișierul readme este marcat ca nemodificat de sistem.

Crearea unei versiuni a proiectului


După ce am adăugat fișierele necesare în zona de așteptare, putem crea o versiune a proiectului. Utilizând comanda:

După comitere, găsim două obiecte noi în interiorul depozitului .git.


Să vedem ce este înăuntru:


Comutatorul -t afișează tipul obiectului. Ca urmare, vedem:


Pentru al doilea obiect:


Pentru primul dosar:

Prima versiune nu poate fi anulată. Se poate repara numai. Dacă doriți să adăugați modificări la ultima versiune, după ce executați comanda commit. adăugați modificările necesare și apelați:


Cheia - name-only este necesară numai pentru a afișa numele fișierelor modificate. Fără aceasta, pentru fiecare fișier modificat, va fi afișată o listă cu toate modificările.

Dacă ați continuat să lucrați și ați modificat numai fișierele care au fost deja adăugate în sistem cu comanda git add. puteți comite o comanda cu o singură comandă:


Tasta --online este necesară pentru a reduce cantitatea de informații afișate pe ecran. Cu această cheie, fiecare comitere este afișată într-o singură linie. De exemplu:


Pentru a anula ultima comitere (cu excepția primei), puteți utiliza următoarea comandă:


Pentru a șterge toate fișierele dintr-un folder care nu sunt legate de proiect și care nu sunt salvate în depozit, puteți utiliza comanda:

Crearea unui depozit pe Github


Până acum lucrăm cu un depozit local stocat într-un dosar de pe computer. Dacă vrem să reușim să salvăm proiectul pe Internet, vom crea un depozit pe Github. În primul rând, trebuie să vă înregistrați la github.com sub numele myuser (în cazul dvs. poate fi orice alt nume).

După înregistrare, apăsăm butonul "+" și introducem numele depozitului. Selectați tipul Public (depozitul este întotdeauna public pentru versiunea gratuită) și faceți clic pe Creare.

Ca rezultat, am creat un depozit pe site-ul Github. Pe ecran vom vedea instrucțiunile de conectare a depozitului nostru local cu cel nou creat. Unele comenzi sunt deja cunoscute.

Adăugăm un depozit la distanță (prin intermediul protocolului SSH) sub denumirea de origine (în loc de origine, puteți folosi orice alt nume).


Dacă totul a fost făcut corect, vom vedea:


Pentru a anula înregistrarea unui depozit la distanță, tastați:


Acest lucru poate fi util dacă doriți să schimbați accesul SSH la HTTPS. După aceasta, îl puteți adăuga din nou, de exemplu sub numele de github și protocolul HTTPS.


Următoarea comandă va aduce toate modificările aduse depozitului local de pe Github.


Comutatorul -u este utilizat pentru a stabili o conexiune între depozitul github la distanță și sucursala dumneavoastră master. Orice alte modificări pe care le puteți transfera la depozitul de la distanță printr-o comandă simplificată.

Transferarea depozitului pe un alt computer


După ce depozitul a fost creat pe Github, acesta poate fi copiat pe orice alt computer. Pentru aceasta, folosiți comanda:


Rezultatul acestei comenzi este crearea directorului de proiect în directorul curent. Acest dosar va conține, de asemenea, un repository local (adică folderul .git).

De asemenea, puteți adăuga numele dosarului în care doriți să plasați depozitul local.

Lucrul cu un depozit de la diferite computere


Mai mulți dezvoltatori pot lucra cu un depozit de la diferite computere sau de tine, dacă, de exemplu, lucrați la același proiect acasă și la locul de muncă.

Pentru a primi actualizări de la un depozit la distanță, utilizați comanda:


Dacă ați modificat fișierele locale, comanda git pull va arunca o eroare. Dacă sunteți sigur că doriți să înlocuiți fișierele locale cu fișiere dintr-un depozit la distanță, executați următoarele comenzi:


În loc de github, înlocuiți numele depozitului dvs. la distanță, pe care l-ați înregistrat cu comanda git push -u.

După cum știm deja, pentru ca modificările să fie puse pe depozitul la distanță, comanda este utilizată:


Dacă depozitul de la distanță conține fișiere cu o versiune mai nouă decât cea locală, comanda push git va arunca o eroare. Dacă sunteți sigur că doriți să suprascrieți fișierele din depozitul de la distanță, în ciuda conflictului versiunii, utilizați comanda:


Uneori devine necesar să amânați modificările curente și să lucrați la fișierele din depozitul de la distanță. Pentru a face acest lucru, amânați modificările curente cu comanda:


După executarea acestei comenzi, directorul dvs. local va conține aceleași fișiere ca și ultimul comitet. Puteți descărca fișiere noi din depozitul de la distanță cu comanda git pull și apoi returnați modificările pe care le-ați amânat prin comanda:

concluzie


Am analizat scenariile de bază pentru lucrul cu sistemele Git și Github. Fiecare dintre comenzile de mai sus are mult mai multe chei și opțiuni. Studierea treptată a acestora vă va oferi posibilitatea de a vă proteja cu ușurință sursele și de a vă concentra mai direct asupra dezvoltării.

Articole similare