Salta el contingut
transform="translate(-1102.015 -54.976)"/>

Introducció a Git

Introducció a Git i GitHub Actions

Què és Git?

Sistema de control de versions lliure i distribuït.

https://git-scm.com/

  • Control de versions
  • Facilita la col·laboració
  • Ramificació i gestió de conflictes

Git vs GitHub

Git és el sistema de control de versions.

GitHub, GitLab o Codeberg són serveis d'allotjament de repositoris de Git.

Estructura d'un repositori

Components d'un repositori de Git

Estructura d'un repositori

  • Directori de treball: directori del sistema on es troben el projecte i els fitxers.
  • Àrea de preparació (Staging Area): espai temporal amb els canvis que s'inclouran en el commit.
  • Repositori local: directori ocult (.git) on es guarda tota la informació del repositori (commits, branques, etiquetes, etc.).

Inicialitzar un repositori

mkdir git_introduccio
cd git_introduccio
git init
Aquesta operació crea un directori ocult .git que conté tota la informació del repositori local.

Àrea de preparació

git add <path>

Fitxer a l'Àrea de preparació

Confirmar canvis

git commit [-m <message>]

Estat del repositori després de fer un commit

Històric de canvis

git log

Àlies:

git config --global alias.lg "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'"
git config --global alias.lga "lg --all"

Mostrar un commit

git show [ref]

Diferències

git diff [--staged]

Resum de git diff

Descartar canvis

git restore <files>

Flux de treball en un repositori de Git

Configuració

git config [--global] <key> <value>
# Exemples
git config --global init.defaultBranch main
git config --global user.name "Joan Puigcerver Ibáñez"
git config --global user.email "j.puigcerveribanez@edu.gva.es"
git config --global core.editor "code --wait"

Exemple de configuració

[core]
    editor = code --wait # Editor per defecte

[init]
    defaultBranch = main # Nom de la branca principal per defecte

[user]
    name = Joan Puigcerver Ibáñez
    email = j.puigcerveribanez@edu.gva.es

[alias]
    lg = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'
    lga = lg --all

.gitignore

# Ignora tots els fitxers .log
*.log

# Ignora tots els fitxers de qualsevol directori anomenat temp
temp/