summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--1.md94
-rw-r--r--img/advance-master.pngbin0 -> 7140 bytes
-rw-r--r--img/advance-testing.pngbin0 -> 8146 bytes
-rw-r--r--img/checkout-master.pngbin0 -> 7583 bytes
-rw-r--r--img/commit-and-tree.pngbin0 -> 22842 bytes
-rw-r--r--img/commits-and-parents.pngbin0 -> 19774 bytes
-rw-r--r--img/head-to-master.pngbin0 -> 9977 bytes
-rw-r--r--img/head-to-testing.pngbin0 -> 9884 bytes
-rw-r--r--img/two-branches.pngbin0 -> 8864 bytes
9 files changed, 94 insertions, 0 deletions
diff --git a/1.md b/1.md
index 652f157..0e0ec95 100644
--- a/1.md
+++ b/1.md
@@ -302,3 +302,97 @@ git config --global alias.lg log --graph \
# Git aurreratua: Adarrak
+
+## Adarrak (*branch*)
+
+Adarrek repositorioaren garapenean beste bide bat hartzea ahalbidetzen dute,
+bertan bide nagusian aldaketarik eragin gabe lan egiteko.
+
+Git adarrak erabiltzeko diseinatuta dago eta haien erabilera sustatzen du.
+Beraz, **oso garrantzitsuak** dira.
+
+Beste bertsio kontrol sistema batzuetan adarrak erabiltzea prozesu astuna da,
+errekurtso asko behar dituena. Git-en oso prozesu simplea da eta ez du ia
+errekurtsorik behar. Git-en bitartez kudeatzen diren proiektuetan ez da arraroa
+ehundaka adar ikustea.
+
+## Git barrutik
+
+- Fitxategiak *Staging Area*ra bidaltzean, Git-ek haien argazkiak gordetzen
+ ditu *blob* objetu moduan eta haien checksuma kalkulatzen du (SHA-1)
+- Commita egiterakoan direktorio bakoitzaren checksuma kalkulatzen du eta
+ *tree* objetu bat gordetzen du direktorio bakoitzeko. *Tree* objetuak, *blob*
+ objetuetara apuntatzen duten punteroak dituzte. Gainera commitek beste datuak
+ gordetzen dituzte: autorea, mezua, data...
+- Commit berri bat gehitzean bere commit gurasoei apuntatzen du: punterorik ez
+ dauka lehengo commita bada, puntero bakarra dauka commit normaletan eta
+ puntero asko ditu *merge* commiten kasuan.
+
+Adarrak commitetara apuntatzen duten puntero mugikorrak dira.
+
+## Git barrutik
+
+![Git repositorio baten barne datuak](img/commit-and-tree.png)
+
+## Git barrutik
+
+![Git repositorio baten commit estruktura](img/commits-and-parents.png)
+
+## Adarrak eratzeko
+
+- `git branch <branchname>`
+
+Defektuz `master` deitutako adar bat dago. Izena konfiguragarria da, baina
+gutxienez adar bat egon behar da beti, bertan commitak gehitzen direlako.
+
+Git-ek oraingo adarrera apuntatzen duen erreferentzia bat gordetzen du: `HEAD`
+deiturikoa.
+
+## Adarraz aldatzeko
+
+- `git checkout <branchname>`
+- `git checkout -b <branchname>` adarra eratu eta aldatzeko
+
+Bertsio berrietan, `checkout` komanduak gauza gehiegi egiten dituenez, komando
+espezifiko bat eratu zen adarrekin lan egiteko:
+
+- `git switch <branchname>`
+- `git switch -c <branchname>` adarra eratu eta aldatzeko
+- `git switch -` aurreko adarrera bueltatzeko
+
+## Adarrak eta aldaketak — I
+
+![`git branch testing`](img/head-to-master.png)
+
+## Adarrak eta aldaketak — II
+
+![`git checkout testing`](img/head-to-testing.png)
+
+## Adarrak eta aldaketak — III
+
+![`git commit ...`](img/advance-testing.png)
+
+## Adarrak eta aldaketak — IV
+
+![`git checkout master`](img/checkout-master.png)
+
+## Adarrak eta aldaketak — V
+
+![`git commit ...`](img/advance-master.png)
+
+## Adarrak eta aldaketak — VI
+
+Giten interfazetik ikusita:
+
+```
+$ git log --oneline --decorate --graph --all
+* c2b9e (HEAD, master) Made other changes
+| * 87ab2 (testing) Made a change
+|/
+* f30ab Add feature #32
+* 34ac2 Fix bug #1328
+* 98ca9 initial commit
+```
+
+> KONTUZ: Ez bada `--all` egiten ez dira defektuz adar guztiak bistaratzen `git
+> log`-en bitartez.
diff --git a/img/advance-master.png b/img/advance-master.png
new file mode 100644
index 0000000..c3a7ebe
--- /dev/null
+++ b/img/advance-master.png
Binary files differ
diff --git a/img/advance-testing.png b/img/advance-testing.png
new file mode 100644
index 0000000..312e65e
--- /dev/null
+++ b/img/advance-testing.png
Binary files differ
diff --git a/img/checkout-master.png b/img/checkout-master.png
new file mode 100644
index 0000000..06e9878
--- /dev/null
+++ b/img/checkout-master.png
Binary files differ
diff --git a/img/commit-and-tree.png b/img/commit-and-tree.png
new file mode 100644
index 0000000..3ddf1cd
--- /dev/null
+++ b/img/commit-and-tree.png
Binary files differ
diff --git a/img/commits-and-parents.png b/img/commits-and-parents.png
new file mode 100644
index 0000000..d563972
--- /dev/null
+++ b/img/commits-and-parents.png
Binary files differ
diff --git a/img/head-to-master.png b/img/head-to-master.png
new file mode 100644
index 0000000..86c7ae8
--- /dev/null
+++ b/img/head-to-master.png
Binary files differ
diff --git a/img/head-to-testing.png b/img/head-to-testing.png
new file mode 100644
index 0000000..08352d6
--- /dev/null
+++ b/img/head-to-testing.png
Binary files differ
diff --git a/img/two-branches.png b/img/two-branches.png
new file mode 100644
index 0000000..aa6377a
--- /dev/null
+++ b/img/two-branches.png
Binary files differ