Ce este Git si Github
Simplificând lucrurile, o aplicație (software), este un folder plin cu fișiere care conțin cod (adică text care poate fi înțeles și executat de un computer).
Si in majoritatea cazurilor acestea sunt create și modificate de echipe de la 1 la mii de dezvoltatori - iar acest lucru ar fi imposibil fara Git.
Git
Git este un sistem de control al versiunilor (VCS) open-source, folosit pentru gestionarea și urmărirea schimbărilor în fișierele unui proiect de software. Este creat de Linus Torvalds și este folosit pe scară largă de către dezvoltatorii de software pentru a gestiona versiunile codului lor sursă și a colabora la proiecte cu alți dezvoltatori.
Cu ajutorul Git, utilizatorii pot monitoriza schimbările aduse de către colaboratori și pot reveni la versiunile anterioare ale proiectului în caz de necesitate. Acest lucru facilitează dezvoltarea software-ului în echipă și asigură că toți membrii echipei lucrează cu aceeași versiune a codului.
Git este considerat un sistem de control al versiunilor distribuit, ceea ce înseamnă că fiecare utilizator are o copie locală a întregului istoric de schimbări ale proiectului. Această caracteristică permite utilizatorilor să lucreze offline și să sincronizeze modificările lor cu restul echipei mai târziu.
Există mai multe alternative la Git (de exemplu Mercurial, SVN (Subversion), Perforce), dar Git domină piața de gestionare a codului sursă din întreaga lume.
Git este folosit în mod obișnuit în asociere cu platforme de gestionare a codului sursă precum GitHub, GitLab sau Bitbucket, care oferă o serie de funcționalități suplimentare pentru colaborarea la proiecte de software și gestionarea versiunilor.
Github
Repo-uri și colaborare
GitHub (github.com) este o platformă web pentru dezvoltatori de software care permite utilizatorilor să colaboreze la proiecte de cod sursă deschis. Pe GitHub, utilizatorii își pot încărca codul sursă al proiectelor și îl pot organiza în repositorii (repo-uri). Alți utilizatori pot vedea, clona sau forka aceste repo-uri, adăuga contribuții și sugestii de îmbunătățire a codului.
Funcționalități
GitHub oferă o serie de funcționalități utile pentru colaborarea la proiecte de software, precum gestionarea versiunilor, problemele (issues), merge request-urile și code review-urile. De asemenea, GitHub oferă și integrare cu alte instrumente populare folosite în dezvoltarea software-ului, precum Jenkins, Travis CI și Jira.
GitHub este una dintre cele mai populare platforme pentru dezvoltarea software-ului open-source și este utilizată de milioane de dezvoltatori din întreaga lume. Este de asemenea o sursă importantă de informații și resurse pentru programatori, oferind acces la o mulțime de biblioteci de cod open-source și documentație.
Utilizare în mediul comercial
GitHub este utilizat și de multe companii mari din întreaga lume. Aceste companii folosesc GitHub pentru a gestiona dezvoltarea software-ului intern, dar și pentru a contribui la proiecte open-source.
De exemplu, Microsoft, una dintre cele mai mari companii de tehnologie din lume, a achiziționat GitHub în 2018 pentru 7,5 miliarde de dolari și îl folosește în mod activ pentru dezvoltarea software-ului propriu. Alte companii mari care utilizează GitHub includ Google, Amazon, Facebook, IBM și multe altele.
Folosirea GitHub de către aceste companii demonstrează importanța platformei în dezvoltarea software-ului la scară largă și arată că GitHub este considerat un instrument indispensabil în industria IT.
Utilizare pentru deployment
GitHub poate fi utilizat și pentru deployment-ul aplicațiilor software. În timp ce GitHub în sine nu este un instrument de deployment, este posibil să se folosească GitHub împreună cu alte instrumente pentru a automatiza procesul de deployment.
De exemplu, o abordare comună este să se folosească GitHub împreună cu un sistem de integrare continuă și livrare continuă (CI/CD), cum ar fi Jenkins, Travis CI sau CircleCI. Acest lucru implică configurarea unui proces de integrare continuă care compilează, testează și construiește aplicația într-un artefact deployabil, iar apoi un proces de livrare continuă care încarcă artefactul pe un mediu de testare sau de producție.
Găzduire pagini web
GitHub oferă de asemenea un serviciu de gazduire a paginilor web numit GitHub Pages, care permite utilizatorilor să creeze și să găzduiască site-uri web statice direct de pe GitHub. Această funcție este adesea utilizată pentru a găzdui site-uri web pentru proiectele open-source sau pentru a crea site-uri web personale.
Alternative pentru Github
Github este un produs comercial si cel mai popular in nisa sa, dar nu este unicul.
Cele mai populare alternative la GitHub sunt:
- GitLab - o platformă similară cu GitHub, care oferă gestionare a versiunilor, probleme, merge request-uri, integrare cu alte instrumente și multe altele.
- Bitbucket - o platformă pentru dezvoltatorii de software care oferă gestionarea versiunilor, code review-uri si multe altele. Bitbucket este dezvoltat de Atlassian, aceeași companie care dezvoltă Jira.
- SourceForge - o platformă mai veche, dar încă populară, care oferă o gamă largă de funcționalități pentru dezvoltarea software-ului open-source, inclusiv gestionarea versiunilor, forumuri de discuții, suport pentru mai multe limbaje de programare.
- Launchpad - o platformă dezvoltată de Canonical, compania care dezvoltă sistemul de operare Ubuntu. Launchpad oferă o serie de funcționalități pentru dezvoltarea software-ului open-source, cum ar fi gestionarea versiunilor, traduceri, raportare de erori și multe altele.