Giti versioonihaldussüsteemi kasutamine Linuxis [põhjalik juhend]


Versioonihaldus (redigeerimise või allikakontroll) on viis faili või failikogumi muudatuste salvestamiseks aja jooksul, et saaksite konkreetseid versioone hiljem meelde tuletada. Versioonijuhtimissüsteem (või lühidalt VCS) on tööriist, mis salvestab failisüsteemi failide muudatused.

Versioonijuhtimissüsteeme on palju, kuid Git on praegu kõige populaarsem ja sagedamini kasutatav, eriti lähtekoodi haldamiseks. Versioonihaldust saab tegelikult kasutada peaaegu igat tüüpi arvutis olevate failide jaoks, mitte ainult lähtekoodi jaoks.

Versioonijuhtimissüsteemid/-riistad pakuvad mitmeid funktsioone, mis võimaldavad inimestel või inimeste grupil:

  • projekti versioonide loomine.
  • muudatuste täpne jälgimine ja konfliktide lahendamine.
  • liita muudatused ühiseks versiooniks.
  • valitud failide või kogu projekti muudatuste tagasivõtmine ja tagasivõtmine.
  • pääsete juurde projekti ajaloolistele versioonidele, et võrrelda muutusi ajas.
  • vaadake, kes muutis viimati midagi, mis võib põhjustada probleemi.
  • looge projekti turvaline varuväline varukoopia.
  • ühe projekti ja mitme muu töö jaoks kasutage mitut masinat.

Versioonijuhtimissüsteemi (nt Git) all oleval projektil on peamiselt kolm jaotist:

  • hoidla: andmebaas teie projektifailide oleku või muudatuste salvestamiseks. See sisaldab kõiki uue projekti jaoks vajalikke Giti metaandmeid ja objekte. Pange tähele, et tavaliselt kopeeritakse see, kui kloonite hoidla teisest arvutist võrgus või kaugserveris.
  • töökataloog või ala: salvestab projektifailide koopiad, millega saate töötada (lisada, kustutada ja muid muutmistoiminguid).
  • lavastusala: fail (mida nimetatakse Giti all indeksiks) kataloogis Git, mis salvestab muudatuste kohta teavet, mille olete valmis hoidma (faili või failikomplekti olekut salvestama).

VCS-sid on kahte peamist tüüpi, peamine erinevus on hoidlate arv:

  • Tsentraliseeritud versioonikontrollisüsteemid (CVCS): siin saab iga projektimeeskonna liige oma kohaliku töökataloogi, kuid teeb muudatusi ainult ühes keskhoidlas.
  • Distributed Version Control Systems (DVCS): selle alusel saab iga projektimeeskonna liige oma kohaliku töökataloogi ja Git-kataloogi, kus nad saavad teha kohustusi. Pärast seda, kui inimene on kohapeal kohustusi teinud, ei pääse teised meeskonnaliikmed muudatustele juurde enne, kui ta need kesksesse hoidlasse tõukab. Git on DVCS-i näide.

Lisaks võib Giti hoidla olla paljas (hoidla, millel pole töötavat kataloogi) või mittepaljas (töökataloogiga). Jagatud (või avalikud või kesk-) hoidlad peaksid alati olema paljad - kõik Githubi hoidlad on paljad.

Õppige Giti abil versioonihaldust

Git on tasuta ja avatud lähtekoodiga, kiire, võimas, hajutatud, hõlpsasti kasutatav ja populaarne versioonikontrollisüsteem, mis on suurte projektidega väga tõhus ning millel on tähelepanuväärne hargnemise ja ühendamise süsteem. See on loodud andmete töötlemiseks rohkem nagu mini-failisüsteemi hetktõmmiste seeria, mis on salvestatud Git-kataloogi.

Giti all olev töövoog on väga lihtne: muudate oma töökataloogis olevaid faile ja lisate seejärel valikuliselt ainult need failid, mis on muutunud, et oleksite järgmise pühendumise osa.

Kui olete valmis, teete kohustuse, mis viib failid lavastusalalt ja salvestab selle hetkepildi jäädavalt kataloogi Git.

Giti installimiseks Linuxi kasutage oma levitamiseks sobivat käsku:

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

Pärast Giti installimist on soovitatav öelda Gitile, kes te olete, esitades oma täisnime ja e-posti aadressi järgmiselt:

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

Giti sätete kontrollimiseks kasutage järgmist käsku.

$ git config --list 

Loob uue Giti hoidla

Jagatud hoidlad või tsentraliseeritud töövood on väga levinud ja seda me siin ka näitame. Näiteks eeldame, et teie ülesandeks on seadistada oma organisatsiooni erinevate osakondade süsteemiadministraatorite/programmeerijate kaughoidla, töötada projektiga nimega bashscripts, mis salvestatakse serverisse/projektid/scritpts /.

SSH kaugserverisse ja looge vajalik kataloog, looge rühm nimega sysadmins (lisage sellesse gruppi kõik projektimeeskonna liikmed, nt kasutaja administraator) ja määrake sellele kataloogile vastavad õigused.

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

Seejärel lähtestage tühi projektihoidla.

# git init --bare /projects/scripts/bashscripts

Siinkohal olete edukalt alustanud palja Git kataloogi, mis on projekti keskne salvestusruum. Kõigi seal olevate failide ja kataloogide nägemiseks proovige teha kataloogi loend:

# ls -la /projects/scripts/bashscripts/

Kloonige Giti hoidla

Kloonige SSH kaudu kaugjagatud Giti kaughoidla oma kohalikku arvutisse (saate kloonida ka HTTP/HTTPS-i kaudu, kui veebiserver on installitud ja asjakohaselt konfigureeritud, nagu enamiku Githubi avalike hoidlate puhul), näiteks:

$ git clone ssh://[email _server_ip:/projects/scripts/bashscripts 

Kloonimiseks kindlasse kataloogi (~/bin/bashscripts) kasutage allolevat käsku.

$ git clone ssh://[email _server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

Teil on nüüd projekti kohalik eksemplar tühjas hoidlas (koos töökataloogiga), saate luua projekti algstruktuuri (st lisada faili README.md, alamkatalooge erinevate skriptikategooriate jaoks, nt luurekriptide, sysadmin ro salvestamiseks sysadminiskriptide jms salvestamiseks):

$ cd ~/bin/bashscripts/
$ ls -la

Kontrollige Giti oleku kokkuvõtet

Töökataloogi oleku kuvamiseks kasutage oleku käsku, mis näitab teie tehtud muudatusi; milliseid faile Git ei jälgi; need muudatused, mis on lavastatud ja nii edasi.

$ git status 

Git etapimuudatused ja pühendumine

Järgmisena seadistage kõik muudatused käsu add abil lülitiga -A ja tehke esialgne kohustus. Lipp -a annab käsule käsu modifitseeritud failide automaatne järkude seadistamine ja pühendumissõnumi määramiseks kasutatakse -m :

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

Avaldage kohalikud kohustused kaug-Giti hoidlas

Projektimeeskonna juhina saate nüüd, kui olete projekti struktuuri loonud, avaldada muudatused keskses hoidlas, kasutades tõukekäsku, nagu näidatud.

$ git push origin master

Praegu peaks teie kohalik git-hoidla olema projekti keskse hoidlaga (päritolu) ajakohane, saate seda kinnitada, käskides olek uuesti.

$ git status

Võite ka kolleege teavitada projektiga alustama, kloonides hoidla nende kohalikesse arvutitesse.

Looge uus Git filiaal

Hargnemine võimaldab teil töötada mõne projekti funktsiooniga või lahendada probleemid kiiresti koodibaasi (peaharu) puudutamata. Uue haru loomiseks ja sellele üleminekuks kasutage vastavalt harude ja kassade käske.

$ git branch latest
$ git checkout latest

Teise võimalusena saate luua uue haru ja sellele ühe sammuga üle minna, kasutades lippu -b kassasse checkout.

$ git checkout -b latest

Samuti saate uue haru luua näiteks mõne teise haru põhjal.

$ git checkout -b latest master

Kui soovite kontrollida, millises harus olete, kasutage haru käsku (tärniga tähistatud aktiivne haru):

$ git branch

Pärast uue haru loomist ja sellele üleminekut tehke selle all mõned muudatused ja tehke mõned kohustused.

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

Muutuste ühendamine ühest harust teise

Harutesti muudatuste ühendamiseks põhiharuks lülitage põhiharu ja ühendage.

$ git checkout master 
$ git merge test 

Kui te ei vaja enam konkreetset haru, saate selle kustutada, kasutades lülitit -d .

$ git branch -d test

Laadige muudatused alla kaugkeskhoidlast

Eeldades, et teie meeskonnaliikmed on kesksesse projektihoidlasse muudatusi sisestanud, saate tõmmata käsu pull käsklusega kõik muudatused projekti kohalikku eksemplari.

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

Kontrollige Giti hoidlat ja tehke võrdlusi

Selles viimases jaotises käsitleme mõningaid kasulikke Git-funktsioone, mis jälgivad kõiki teie hoidlas toimunud toiminguid, võimaldades teil seega vaadata projekti ajalugu.

Esimene funktsioon on Git-logi, mis kuvab lubamislogid:

$ git log

Teine oluline omadus on show-käsk, mis kuvab erinevat tüüpi objekte (näiteks commits, tags, puud jne):

$ git show

Kolmas oluline funktsioon, mida peate teadma, on käsk diff, mida kasutatakse harude vahelise erinevuse võrdlemiseks või kuvamiseks, muudatuste kuvamiseks töökataloogi ja registri vahel, muudatuste tegemiseks kahe kettal oleva faili vahel ja palju muud.

Näiteks põhi- ja viimase haru erinevuse näitamiseks võite käivitada järgmise käsu.

$ git diff master latest

Git võimaldab inimeste meeskonnal sama faili (de) abil koostööd teha, samal ajal salvestades faili (de) muudatusi aja jooksul, et nad saaksid hiljem konkreetseid versioone meelde tuletada.

Nii saate Giti kasutada lähtekoodi, konfiguratsioonifailide või mis tahes arvutisse salvestatud failide haldamiseks. Lisateabe saamiseks võite pöörduda Git Online'i dokumentatsiooni poole.