summaryrefslogtreecommitdiff
path: root/1.md
blob: 175dd761beabb0f10e0222cb60b445a76fef6105 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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 <URL>`. 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.