Kako koristiti Git Version Control System u Linuxu [Sveobuhvatni vodič]


Kontrola verzija (kontrola revizije ili kontrola izvora) način je bilježenja promjena datoteke ili zbirke datoteka tijekom vremena kako biste se kasnije mogli prisjetiti određenih verzija. Sustav kontrole verzija (ili skraćeno VCS) je alat koji bilježi promjene datoteka u datotečnom sustavu.

Postoje mnogi sustavi kontrole verzija, ali Git trenutno je najpopularniji i najčešće korišten, posebno za upravljanje izvornim kodom. Kontrola verzija zapravo se može koristiti za gotovo sve vrste datoteka na računalu, ne samo za izvorni kod.

Sustavi/alati za kontrolu verzija nude nekoliko značajki koje pojedincima ili grupi ljudi omogućuju:

  • stvoriti verzije projekta.
  • točno pratiti promjene i rješavati sukobe.
  • spajanje promjena u zajedničku verziju.
  • vraćanje i poništavanje promjena odabranih datoteka ili cijelog projekta.
  • pristup povijesnim verzijama projekta za usporedbu promjena tijekom vremena.
  • vidjeti tko je posljednji modificirao nešto što bi moglo uzrokovati problem.
  • stvoriti sigurnu izvanmjesnu sigurnosnu kopiju projekta.
  • koristiti više strojeva za rad na jednom projektu i još mnogo toga.

Projekt pod sustavom kontrole verzija kao što je Git imat će uglavnom tri odjeljka, naime:

  • repozitorij: baza podataka za bilježenje stanja ili promjena vaših projektnih datoteka. Sadrži sve potrebne Git metapodatke i objekte za novi projekt. Imajte na umu da je to ono što se obično kopira kada klonirate repozitorij s drugog računala na mreži ili udaljenog poslužitelja.
  • radni direktorij ili područje: pohranjuje kopiju projektnih datoteka na kojima možete raditi (dodavati, brisati i druge radnje izmjene).
  • pripremno područje: datoteka (poznata kao indeks pod Gitom) unutar Git direktorija, koja pohranjuje informacije o promjenama koje ste spremni predati (spremiti stanje datoteke ili skupa datoteka) u repozitorij.

Postoje dvije glavne vrste VCS-ova, a glavna je razlika u broju spremišta:

  • Centralizirani sustavi kontrole verzija (CVCS-ovi): ovdje svaki član projektnog tima dobiva vlastiti lokalni radni direktorij, međutim, promjene predaju samo jednom središnjem repozitoriju.
  • Sustavi kontrole distribuiranih verzija (DVCS-ovi): prema ovome, svaki član projektnog tima dobiva svoj lokalni radni direktorij i Git direktorij gdje se mogu obvezati. Nakon što se pojedinac lokalno obvezao, ostali članovi tima ne mogu pristupiti promjenama dok ih on/ona ne gurne u središnje spremište. Git je primjer DVCS-a.

Osim toga, Git spremište može biti golo (spremište koje nema radni direktorij) ili negolo (ono s radnim imenik). Dijeljena (ili javna ili središnja) spremišta uvijek bi trebala biti prazna – sva Github spremišta su prazna.

Naučite kontrolu verzija s Gitom

Git je besplatan i otvorenog koda, brz, moćan, distribuiran, jednostavan za korištenje i popularan sustav kontrole verzija koji je vrlo učinkovit s velikim projektima i ima izvanredan sustav grananja i spajanja. Dizajniran je za rukovanje podacima više poput niza snimaka mini datotečnog sustava koji je pohranjen u Git direktoriju.

Tijek rada pod Git-omje vrlo jednostavan: napravite izmjene na datotekama u vašem radnom direktoriju, zatim selektivno dodate samo one datoteke koje su promijenjene u područje za pripremu, da budu dio vašeg sljedećeg predavanja.

Kada ste spremni, izvršite commit, koji preuzima datoteke iz pripremnog područja i trajno sprema tu snimku u Git direktorij.

Da biste instalirali Git u Linuxu, upotrijebite odgovarajuću naredbu za svoju distribuciju po izboru:

sudo apt install git   [On Debian/Ubuntu]
sudo yum install git   [On CentOS/RHEL]

Nakon instaliranja Gita, preporuča se da kažete Gitu tko ste dajući svoje puno ime i adresu e-pošte, kako slijedi:

git config --global user.name “Aaron Kili”
git config --global user.email “[email ”

Da biste provjerili svoje Git postavke, upotrijebite sljedeću naredbu.

git config --list 

Stvara novo Git spremište

Dijeljena spremišta ili centralizirani tijekovi rada vrlo su uobičajeni i to je ono što ćemo ovdje pokazati. Na primjer, pretpostavljamo da ste dobili zadatak postaviti udaljeno središnje spremište za sistemske administratore/programere iz raznih odjela u vašoj organizaciji, za rad na projektu pod nazivom bashscripts, koji će biti pohranjen pod /projects/scritpts/ na poslužitelju.

SSH u udaljeni poslužitelj i stvorite potrebni direktorij, stvorite grupu pod nazivom sysadmins (dodajte sve članove projektnog tima u ovu grupu, npr. korisnički administrator), i postavite odgovarajuća dopuštenja na ovaj imenik.

mkdir-p /projects/scripts/
groupadd sysadmins
usermod -aG sysadmins admin
chown :sysadmins -R /projects/scripts/
chmod 770 -R /projects/scripts/

Zatim inicijalizirajte golo spremište projekta.

git init --bare /projects/scripts/bashscripts

U ovom trenutku uspješno ste pokrenuli goli Git direktorij koji je središnja pohrana za projekt. Pokušajte napraviti popis direktorija da biste vidjeli sve datoteke i direktorije u njemu:

ls -la /projects/scripts/bashscripts/

Klonirajte Git repozitorij

Sada klonirajte udaljeno dijeljeno Git spremište na svoje lokalno računalo putem SSH (također možete klonirati putem HTTP/HTTPS ako imate instaliran web poslužitelj i odgovarajuće konfiguriran, kao što je slučaj s većinom javnih spremišta na Githubu), na primjer:

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts 

Da biste ga klonirali u određeni direktorij (~/bin/bashscripts), koristite naredbu u nastavku.

git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Sada imate lokalnu instancu projekta u negolom repozitoriju (s radnim direktorijem), možete kreirati početnu strukturu projekta (tj. dodati README.md datoteka, poddirektorije za različite kategorije skripti, npr. recon za pohranjivanje skripti za izviđanje, sysadmin ro pohranjivanje skripti za sysadmin itd.):

cd ~/bin/bashscripts/
ls -la

Provjerite Git sažetak statusa

Za prikaz statusa vašeg radnog direktorija koristite naredbu status koja će vam pokazati sve promjene koje ste napravili; koje datoteke Git ne prati; te promjene koje su inscenirane i tako dalje.

git status 

Git Stage mijenja i uređuje

Zatim unesite sve promjene pomoću naredbe add s prekidačem -A i izvršite početno preuzimanje. Oznaka -a upućuje naredbu da automatski postavi datoteke koje su izmijenjene, a -m se koristi za specificiranje poruke predaje:

git add -A
git commit -a -m "Initial Commit"

Objavi lokalne obveze u udaljenom Git repozitoriju

Kao voditelj projektnog tima, sada kada ste kreirali strukturu projekta, možete objaviti promjene u središnjem repozitoriju pomoću push naredbe kao što je prikazano.

git push origin master

Trenutno bi vaše lokalno git spremište trebalo biti ažurirano sa središnjim spremištem projekta (podrijetlo), to možete potvrditi ponovnim pokretanjem status naredbe.

git status

Također možete obavijestiti svoje kolege da počnu raditi na projektu kloniranjem repozitorija na svoja lokalna računala.

Stvorite novu Git granu

Grananje vam omogućuje rad na značajci vašeg projekta ili brzo rješavanje problema bez dodirivanja baze koda (glavna grana). Da biste stvorili novu granu i zatim se prebacili na nju, koristite naredbe branch i checkout.

git branch latest
git checkout latest

Alternativno, možete stvoriti novu granu i prebaciti se na nju u jednom koraku pomoću naredbe za odjavu s oznakom -b.

git checkout -b latest

Također možete stvoriti novu granu na temelju druge grane, na primjer.

git checkout -b latest master

Da biste provjerili u kojoj se grani nalazite, koristite naredbu grana (zvjezdica označava aktivnu granu):

git branch

Nakon kreiranja i prebacivanja na novu granu, napravite neke promjene ispod nje i obavite neke obveze.

vim sysadmin/topprocs.sh
git status
git commit add  sysadmin/topprocs.sh
git commit -a -m 'modified topprocs.sh'

Spajanje promjena iz jedne grane u drugu

Za spajanje promjena pod testom grane u glavnu granu, prebacite se na glavnu granu i izvršite spajanje.

git checkout master 
git merge test 

Ako više ne trebate određenu granu, možete je izbrisati pomoću -d prekidača.

git branch -d test

Preuzmite promjene iz udaljenog središnjeg repozitorija

Pod pretpostavkom da su članovi vašeg tima gurnuli promjene u središnji repozitorij projekta, možete preuzeti sve promjene na svoju lokalnu instancu projekta pomoću naredbe povlačenja.

git pull origin
OR
git pull origin master	#if you have switched to another branch

Pregledajte Git repozitorij i izvršite usporedbe

U ovom posljednjem odjeljku pokrit ćemo neke korisne značajke Gita koje prate sve aktivnosti koje su se dogodile u vašem repozitoriju, omogućujući vam tako pregled povijesti projekta.

Prva značajka je Git log, koja prikazuje zapise predaje:

git log

Druga važna značajka je naredba prikaži koja prikazuje različite vrste objekata (kao što su obveze, oznake, stabla itd.):

git show

Treća vitalna značajka koju trebate znati je diff naredba, koja se koristi za usporedbu ili prikaz razlike između grana, prikaz promjena između radnog direktorija i indeksa, promjena između dvije datoteke na disku i još mnogo toga.

Na primjer, da biste prikazali razliku između glavne i najnovije grane, možete pokrenuti sljedeću naredbu.

git diff master latest

Pročitajte također: 10 najboljih Git alternativa za hosting projekata otvorenog koda

Sažetak

Git omogućuje timu ljudi da rade zajedno koristeći istu datoteku(e), dok bilježe promjene datoteke(a) tijekom vremena kako bi se kasnije mogli prisjetiti određenih verzija.

Na ovaj način možete koristiti Git za upravljanje izvornim kodom, konfiguracijskim datotekama ili bilo kojom datotekom pohranjenom na računalu. Za daljnju dokumentaciju možda ćete htjeti pogledati Git online dokumentaciju.