From 14f98bb4be016451570a2619533e92f7fe55e351 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Fri, 20 May 2022 20:57:02 +0200 Subject: Lehengo zatia: git basikoa eta sarrera --- 1.md | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 1.md (limited to '1.md') diff --git a/1.md b/1.md new file mode 100644 index 0000000..175dd76 --- /dev/null +++ b/1.md @@ -0,0 +1,171 @@ +--- +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. -- cgit v1.2.3