Git és un sistema de control de versions, un programari que serveix bàsicament per gestionar les versions per les quals va passant el codi dels projectes.
Git és el més popular dels sistemes de control de versions actualment i una de les eines més indispensables per al desenvolupament de projectes.
Encara que un sistema de control de versions serveixi justament per controlar els estats pels quals ha passat un codi, la veritat és que l'eina git facilita molt el desenvolupament dels projectes en equip, així com altres operacions relacionades amb el flux de treball dels desenvolupadors.
//
// Per a estandaritzar git i un millor funcionament en windows utilitzar la Aplicacio GitBash
//
//
// Per a una millor estructuracio es recomanable tindre un directori
// workspace i dins tots els projectes, d'aquesta manera tindrem tots els projectes centralitzats
// i no esperdigolats.
//
Fluxe de treball de git
Per a treballar correctament amb git em de compendre que aquest treballa per etapes.
Hi ha 4 etapes que segueixen el seguent ordre:
PC -> Stage -> Commit -> Server
PC
//Desde el ordinador podrem agregar i eliminar archius al stagegit add
Stage
// Stage es una etapa intermitja per determinar quins canvis efectuem per enviar al repositori.// Un cop aguesem revisat la etapa de stage podrem traure els canvis no desitjats i enviarlos
// al repositori amb el seguent commando
git commit
Commit
// Aqui acavem de comprometre els archius que volem pujar al servidor amb pushgit push
Server
// github, bitlocker, etc...
Post instalacio git, configuracio local
// Configurar el nom que volem asignargit config --global user.name "NomUsuari"
// configurar el compte correu
git config --global user.email contacte@esama.com
// indicar a git vscdoe com editor predeterminat
git config --global core.editor "code --wait"
// veure el archiu de configuracio global
git config --global -e
CORE.AUTOCRLF depenent del sistema operatiu on estigues treballant.
//Mes informacio: AQUI
//windows core.autocrlf
git config --global core.autocrlf true
// linux/Mac core.autocrlf
git config --global core.autocrlf input
//Llistat de configuracions
git config -h
pwd -> imprimir direccio directori
cd -> moures a un directori
mkdir -> crear un directori
mv -> Moure de directori un archiu o canviar el seu nom.
git init
//Si vulgueseum veure el directori .git creat dins del directori.
ls -a
// la carpeta .git es sempre ignorada i no es compartix dins del repositori.
// Podem obrir cualsevol carpeta amb code fent la seguent ordre, estan dins del directori:
code .
git status
// Mostra tots els canvis dins la etapa de stage
git diff --staged
git add archiu.txt
// Tambe podem afegir tots els archius del directori, tot i que es una mala practica a no ser que
// tinguesem la seguretat de que tots aquells arxhius han de ser adderits.
git add .
// Tambe podem afegir multiples archius
git add archiu1.txt archiu2.txt archiu3.txt
// Agregar tots els archius segons extencio
git add *.txt
// Si un archiu de commit es editat localment i es vol afegir a commit
//windows core.autocrlf
git config --global core.autocrlf true
// linux/Mac core.autocrlf
git config --global core.autocrlf input
//Llistat de configuracions
git config -h
Commandes basiques per moures amb bashGUI
ls -> listar directoripwd -> imprimir direccio directori
cd -> moures a un directori
mkdir -> crear un directori
mv -> Moure de directori un archiu o canviar el seu nom.
Inicialitzar un repositori
// Primer dirigirse al directori amb la terminal, per seguidament declarar:git init
//Si vulgueseum veure el directori .git creat dins del directori.
ls -a
// la carpeta .git es sempre ignorada i no es compartix dins del repositori.
// Podem obrir cualsevol carpeta amb code fent la seguent ordre, estan dins del directori:
code .
Status del nostre repositori
// status ens dira els archius compromesos dins del repositorigit status
// Tambe ens indicara els archius que han sigut modificats localment i que
// son identics als de la versio de repositori.
// untracked files son els archius que no formen part del repositori
// Indicacions de status:
Changes to be comitted: Archius llestos per pasar de Stage a Commit.
Changes not staged for commit: Diferencies entre els archius locals i els de Stage.
// Status -s mostrara status de una manera mes resumida amb el seguent codi de lletres i colors:
git status -S
// son identics als de la versio de repositori.
// untracked files son els archius que no formen part del repositori
// Indicacions de status:
Changes to be comitted: Archius llestos per pasar de Stage a Commit.
Changes not staged for commit: Diferencies entre els archius locals i els de Stage.
// Status -s mostrara status de una manera mes resumida amb el seguent codi de lletres i colors:
git status -S
M És que esta a stage
M És que esta per eliminar
?? Significa que no esta dins de stage
A Significa ADD
git diff
M És que esta per eliminar
?? Significa que no esta dins de stage
A Significa ADD
Diferencies entre els archius
// mostrar les diferencies que hi han entre els archiusgit diff
// Mostra tots els canvis dins la etapa de stage
git diff --staged
Afegir un archiu dins del repositori:
// Hi han diverses formes de adderir un archiu o varis al nostre al repositori.git add archiu.txt
// Tambe podem afegir tots els archius del directori, tot i que es una mala practica a no ser que
// tinguesem la seguretat de que tots aquells arxhius han de ser adderits.
git add .
// Tambe podem afegir multiples archius
git add archiu1.txt archiu2.txt archiu3.txt
// Agregar tots els archius segons extencio
git add *.txt
Crear un commit:
// COMMIT significa comprometre
// Passar el stage a commit:
git commit -m "Un misatge exemple: Commit inical"// Si un archiu de commit es editat localment i es vol afegir a commit
git add arxiu.txtgit commit//Sens obrira VSCODE i ens demanara que agreguesem un text referencian els canvis.// Escrivim adal del archiu i guardem// A la consola ens sortira referenciat el text que em guardat.
Remoure archius o recuperarlos
// Podem remoure archius de un stage, per a lograro hem de entendre el fluxe de treballa que te git.
// Es a dir, em de compendre que al stage s'actualitza a partir dels archius locals de un ordinador,
// Per lo que per a eliminarlo, primer em de eliminar el archiu localment i seguidament pujar
// l'actualitzacio de stage
// Es a dir, em de compendre que al stage s'actualitza a partir dels archius locals de un ordinador,
// Per lo que per a eliminarlo, primer em de eliminar el archiu localment i seguidament pujar
// l'actualitzacio de stage
// pas 1, remoure archiu local
rm archiu.txt// pas 2, agregar la ordre de eliminar el arxiu de stage
git add archiu.txt
Eliminar o recuper archius
// Per a eliminar seguidament el archiu de la etapa commit
git commit -m "elminant archiu.txt"
// Per eliminar un archiu directament de stage
git rm archiu.txt
// Recuperar un archiu eliminat a la etapa stage:
git restore --staged archiu.txt
Ignorar archius
// .gitignore es un arxiu que ens permet gestionar els archius i directoris dins del projecte per a no pujarlos a Stage. Aquestos es delcaren linia a linia..gitignore
Mostra informacio sobre qui ha fet X commits.
git log// Per a veure el historial de commit
git log --oneline
Branques del repositori
// Es important asegurar que tenim la zona de trevall neta, sense// actualitzacions o dependencies pendents al projecte.
// Abans de fer una nova branca es important que status ens mostre el seguent misatge:
git status
On branch mainnothing to commit,working tree clean
//Per saber a quina rama estem
git branch
// Per a crear una nova rama
git checkout -b Nom-de-la-Rama
//Per a moures com un mono de rama en rama
git checkout Nom-de-la-Rama
// Per a unir una rama a main em de asegurarnos de que estem dins de main
git merge Nom-de-la-rama-Que-Volem-Unir-A-Main.
Utilitzar github com a servidor per als nostres repositoris:
-> Registrarse a www.github.com
-> Crear un repositori nomes public, sense readme ni res mes que public.
-> Copiar la linia i pegar a la terminal bash:
git remote add origin https:github...
-> executar:
push -u origin main
// Ens demanara el nom de usuari github
// Ens demanara una key, pero no es la pasword del compte github, per accedir a esta clau:
settings -> al final developer settings -> Personal acces tockens -> Generate new token