--- title: GIT — EITB 2022 subtitle: Sarrera eta erabilera basikoa license: CC-BY-SA 4.0 author: Ekaitz Zarraga links-as-notes: true lang: basque polyglossia-lang: name: basque how-to: pandoc -f markdown+smart -t beamer % -o pdf/1.pdf --pdf-engine=xelatex --template=./template.tex ... # Sarrera: Bertsio kontrol sistemak ## Lizentzia - CC-BY-SA 4.0 - Dokumentu honen edukiak eta irudiak [**Pro Git (Scott Chacon, Ben Straub)**](https://git-scm.com/book/en/v2) liburutik atera dira. ## Bertsio kontrolerako sistemak `Document_v3_FINAL.pdf` --- ![Bertsio kontrol sistema zentralizatuak](img/zentralizatuak.png){ height=180px } --- ![Bertsio kontrol sistema banatuak](img/banatuak.png){ height=300px } # GIT: Hasiera ## Kontestua - 2005-ean argitaratu zen - Linux garapenerako garatu zen - Milioika garatzaile - *Codebase* handiak kudeatzeko - Sistema banatua (*distributed*) da - *Snapshot*etan oinarrituta - Operazio gehienak lokalak dira eta normalean ez ditu datuak ezabatzen - Integridade kontrola egiten du SHA-1 erabiliz - Hiru egoera: `FITXATEGIA — STAGING AREA — REPOSITORIOA` ## Instalazioa Debian oinarritutako distribuzioetan: ``` apt-get install git ``` Beste distribuzioetan antzeko komandoren batekin egin daiteke. ## Konfigurazio sistema - Sistema mailakoa: `/etc/gitconfig` - Konfigurazio generala: `~/.config/git/config` edo `~/.gitconfig` - Konfigurazio lokala. Repositorio bakoitzeko: `$REPOSITORIOA/.git/config` Kaskada moduan dabil, konfigurazio lokalak generala zapaltzen du. Nondik datorren ikusteko: ``` git config --list --show-origin ``` ## Konfigurazioa kudeatzea Komandoek konfigurazio fitxategia irakurri edo idazten dute. Eskuz egin daiteke. Komando orokorra: ``` git config [--global] atala.klabea [balioa] ``` - `balioa` gehitzen ez bada konfigurazioa irakurtzen da idatzi beharrean. - `--global` konfigurazio globala kudeatzeko erabiltzen da. Benetan konplexuagoa da, laguntza begiratu. ## Hasierako konfigurazioa Identitatea definitu. Beharrezkoa da commiten egilea nor den jakiteko. ``` git config --global user.name "John Doe" git config --global user.email johndoe@example.com ``` Editorea aukeratzeko. ``` git config --global core.editor vim ``` ## Laguntza lortzeko - `git help` - `man` # GIT: Basikoa ## Repositorio bat lortzen Bi aukera: - Repositorio berri bat hasi: `git init`. Oraingo direktorioan `.git` direktorioa eratuko du, bertan Git-en datuak gordeko dira. - Repositorio bat klonatu: `git clone `. Oraingo direktorioan emandako repositorioa kopiatuko du, bere `.git` direktorioa barne. Protokolo ezberdinetan egin daiteke komunikazioa. ## Fitxategien egoerak ![Fitxategien egoera ezberdinak](img/lifecycle.png){ height=180px } ## Repositorioaren egoera ikusteko - `git status` - Fitxategi batzuei jaramonik ez egiteko: `.gitignore` fitxategi bat gehitu. *Glob pattern*ak erabiltzen ditu. ## Egoeraz aldatzeko - Fitxategi berriak gehitzeko: `git add` - Aldaketak *staging area*ra bidaltzeko: `git add` ## Aldaketak ikusteko - `git diff` - `git diff --cached|--staged` - `git difftool` (konfiguratuta badago) ## Aldaketak idazteko - `git commit` Mezu bat idaztea eskatzen du: `$EDITOR` edo `git config --global core.editor` programa exekutatuz. ## Fitxategiak ezabatzeko - `git rm` - `git rm --cached` ## Izenak aldatzeko - `git mv` Edo bestela fitxategia eskuz lekuz aldatu eta gero `git rm` + `git add` egin. ## Commit historia ikusteko — I - `git log` Oso komando komplexua da, eta aukera asko ditu.