Com utilitzar el sistema de control de versions de Git a Linux [Guia completa]


El control de versions (control de revisions o control de font) és una manera d'enregistrar els canvis en un fitxer o col·lecció de fitxers al llarg del temps perquè pugueu recordar versions específiques més endavant. Un sistema de control de versions (o VCS en resum) és una eina que registra els canvis als fitxers d'un sistema de fitxers.

Hi ha molts sistemes de control de versions, però actualment Git és el més popular i utilitzat amb freqüència, especialment per a la gestió del codi font. El control de versions es pot utilitzar realment per a gairebé qualsevol tipus de fitxer en un ordinador, no només el codi font.

Els sistemes/eines de control de versions ofereixen diverses funcions que permeten a persones o grups de persones:

  • crear versions d'un projecte.
  • seguir els canvis amb precisió i resoldre els conflictes.
  • combina els canvis en una versió comuna.
  • retrocedir i desfer els canvis als fitxers seleccionats o a un projecte sencer.
  • accedeix a versions històriques d'un projecte per comparar els canvis al llarg del temps.
  • vegeu qui va modificar per última vegada alguna cosa que podria estar causant un problema.
  • creeu una còpia de seguretat fora del lloc segura d'un projecte.
  • utilitza diverses màquines per treballar en un sol projecte i molt més.

Un projecte sota un sistema de control de versions com Git tindrà principalment tres seccions, a saber:

  • un dipòsit: una base de dades per registrar l'estat o els canvis dels fitxers del projecte. Conté totes les metadades i objectes Git necessaris per al nou projecte. Tingueu en compte que això és normalment el que es copia quan cloneu un dipòsit des d'un altre ordinador en una xarxa o en un servidor remot.
  • un directori o àrea de treball: emmagatzema una còpia dels fitxers del projecte en què podeu treballar (fer addicions, supressions i altres accions de modificació).
  • una àrea de prova: un fitxer (conegut com a índex a Git) dins del directori Git, que emmagatzema informació sobre els canvis, que esteu preparat per confirmar (desar l'estat d'un fitxer o conjunt de fitxers) al repositori.< /li>

Hi ha dos tipus principals de VCS, la principal diferència és el nombre de repositoris:

  • Sistemes de control de versions centralitzats (CVCS): aquí cada membre de l'equip del projecte obté el seu propi directori de treball local, però, comprometen els canvis a un sol repositori central.
  • Sistemes de control de versions distribuïts (DVCS): sota aquest, cada membre de l'equip del projecte obté el seu propi directori de treball local i directori Git on poden fer commits. Després que un individu faci una confirmació local, els altres membres de l'equip no poden accedir als canvis fins que no els envia al repositori central. Git és un exemple de DVCS.

A més, un repositori Git pot ser nu (repositori que no té un directori de treball) o no nu (un amb un directori de treball). Els dipòsits compartits (o públics o centrals) sempre haurien d'estar nus: tots els dipòsits de Github estan nus.

Apreneu el control de versions amb Git

Git és un sistema de control de versions gratuït i de codi obert, ràpid, potent, distribuït, fàcil d'utilitzar i popular que és molt eficient amb grans projectes i té un sistema de ramificació i fusió notable. Està dissenyat per gestionar dades més com una sèrie d'instantànies d'un sistema de fitxers mini, que s'emmagatzema en un directori Git.

El flux de treball a Git és molt senzill: feu modificacions als fitxers del vostre directori de treball i, a continuació, afegiu selectivament només aquells fitxers que han canviat, a l'àrea de prova, per formar part del vostre proper commit.

Quan estigueu preparat, feu una confirmació, que agafa els fitxers de l'àrea de prova i desa aquesta instantània permanentment al directori Git.

Per instal·lar Git a Linux, utilitzeu l'ordre adequat per a la distribució que trieu:

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

Després d'instal·lar Git, es recomana que digueu a Git qui sou, proporcionant el vostre nom complet i adreça de correu electrònic, de la manera següent:

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

Per comprovar la configuració de Git, utilitzeu l'ordre següent.

$ git config --list 

Crea un nou repositori Git

Els repositoris compartits o els fluxos de treball centralitzats són molt habituals i això és el que demostrarem aquí. Per exemple, suposem que se us ha encarregat de configurar un dipòsit central remot per als administradors/programadors del sistema de diversos departaments de la vostra organització, per treballar en un projecte anomenat bashscripts, que s'emmagatzemarà a /projects/scritpts/ al servidor.

SSH al servidor remot i creeu el directori necessari, creeu un grup anomenat sysadmins (afegiu tots els membres de l'equip del projecte a aquest grup, per exemple, administrador d'usuaris) i configureu els permisos adequats en aquest directori.

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

A continuació, inicialitzeu un repositori de projecte nu.

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

En aquest punt, heu inicialitzat correctament un directori Git nu que és la instal·lació d'emmagatzematge central del projecte. Intenta fer una llista del directori per veure tots els fitxers i directoris que hi ha:

# ls -la /projects/scripts/bashscripts/

Clonar un repositori Git

Ara cloneu el dipòsit Git compartit remot al vostre ordinador local mitjançant SSH (també podeu clonar mitjançant HTTP/HTTPS si teniu un servidor web instal·lat i configurat adequadament, com és el cas de la majoria de dipòsits públics de Github), per exemple:

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

Per clonar-lo a un directori específic (~/bin/bashscripts), utilitzeu l'ordre següent.

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

Ara teniu una instància local del projecte en un dipòsit no nu (amb un directori de treball), podeu crear l'estructura inicial del projecte (és a dir, afegir un fitxer README.md, subdirectoris per a diferents categories d'scripts, per exemple, recon per emmagatzemar scripts de reconeixement, sysadmin ro emmagatzemar scripts sysadmin, etc.):

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

Comproveu un resum d'estat de Git

Per mostrar l'estat del vostre directori de treball, utilitzeu l'ordre status que us mostrarà els canvis que hàgiu fet; quins fitxers no estan sent rastrejats per Git; aquells canvis que s'han escenificat, etc.

$ git status 

Canvis en l'etapa de Git i commit

A continuació, escenifiqueu tots els canvis mitjançant l'ordre add amb l'interruptor -A i feu la confirmació inicial. El senyalador -a indica a l'ordre que escrigui automàticament els fitxers que s'han modificat, i s'utilitza -m per especificar un missatge de confirmació:

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

Publiqueu locals compromesos al repositori Git remot

Com a líder de l'equip del projecte, ara que heu creat l'estructura del projecte, podeu publicar els canvis al repositori central mitjançant l'ordre push tal com es mostra.

$ git push origin master

Ara mateix, el vostre dipòsit git local hauria d'estar actualitzat amb el dipòsit central del projecte (origen), podeu confirmar-ho executant l'ordre d'estat una vegada més.

$ git status

També podeu informar els vostres companys perquè comencin a treballar en el projecte clonant el repositori als seus ordinadors locals.

Creeu una nova branca de Git

La ramificació us permet treballar en una característica del vostre projecte o solucionar problemes ràpidament sense tocar la base de codi (branca mestra). Per crear una branca nova i després canviar-hi, utilitzeu les ordres de branca i pagament respectivament.

$ git branch latest
$ git checkout latest

Alternativament, podeu crear una branca nova i canviar-hi en un sol pas mitjançant l'ordre de pagament amb el senyalador -b.

$ git checkout -b latest

També podeu crear una branca nova basada en una altra branca, per exemple.

$ git checkout -b latest master

Per comprovar a quina branca esteu, feu servir l'ordre de branca (un asterisc indica la branca activa):

$ git branch

Després de crear i canviar a la nova branca, feu alguns canvis a sota i feu algunes confirmacions.

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

Combina els canvis d'una branca a una altra

Per combinar els canvis de la prova de branca a la branca mestra, canvieu a la branca mestra i feu la fusió.

$ git checkout master 
$ git merge test 

Si ja no necessiteu una branca en particular, podeu suprimir-la utilitzant l'interruptor -d.

$ git branch -d test

Baixeu els canvis des del dipòsit central remot

Suposant que els membres del vostre equip han introduït canvis al dipòsit central del projecte, podeu descarregar qualsevol canvi a la vostra instància local del projecte mitjançant l'ordre d'extracció.

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

Inspeccioneu el repositori Git i feu comparacions

En aquesta darrera secció, parlarem d'algunes funcions útils de Git que fan un seguiment de totes les activitats que s'han produït al vostre repositori, la qual cosa us permetrà veure l'historial del projecte.

La primera característica és Git log, que mostra els registres de confirmació:

$ git log

Una altra característica important és l'ordre show que mostra diversos tipus d'objectes (com commits, etiquetes, arbres, etc.):

$ git show

La tercera característica vital que necessiteu saber és l'ordre diff, que s'utilitza per comparar o mostrar la diferència entre branques, mostrar els canvis entre el directori de treball i l'índex, els canvis entre dos fitxers al disc i molt més.

Per exemple, per mostrar la diferència entre la branca mestra i la darrera, podeu executar l'ordre següent.

$ git diff master latest

Git permet que un equip de persones treballi junts utilitzant els mateixos fitxers, mentre enregistren els canvis als fitxers amb el pas del temps perquè puguin recordar versions específiques més endavant.

D'aquesta manera, podeu utilitzar Git per gestionar el codi font, els fitxers de configuració o qualsevol fitxer emmagatzemat en un ordinador. És possible que vulgueu consultar la documentació en línia de Git per obtenir més documentació.