From 3887410dd909d5c29dc8046ce1b32759fa271a15 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Mon, 23 May 2022 17:31:16 +0200 Subject: Start with git branching --- 1.md | 94 ++++++++++++++++++++++++++++++++++++++++++++ img/advance-master.png | Bin 0 -> 7140 bytes img/advance-testing.png | Bin 0 -> 8146 bytes img/checkout-master.png | Bin 0 -> 7583 bytes img/commit-and-tree.png | Bin 0 -> 22842 bytes img/commits-and-parents.png | Bin 0 -> 19774 bytes img/head-to-master.png | Bin 0 -> 9977 bytes img/head-to-testing.png | Bin 0 -> 9884 bytes img/two-branches.png | Bin 0 -> 8864 bytes 9 files changed, 94 insertions(+) create mode 100644 img/advance-master.png create mode 100644 img/advance-testing.png create mode 100644 img/checkout-master.png create mode 100644 img/commit-and-tree.png create mode 100644 img/commits-and-parents.png create mode 100644 img/head-to-master.png create mode 100644 img/head-to-testing.png create mode 100644 img/two-branches.png 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 ` + +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 ` +- `git checkout -b ` adarra eratu eta aldatzeko + +Bertsio berrietan, `checkout` komanduak gauza gehiegi egiten dituenez, komando +espezifiko bat eratu zen adarrekin lan egiteko: + +- `git switch ` +- `git switch -c ` 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 Binary files /dev/null and b/img/advance-master.png differ diff --git a/img/advance-testing.png b/img/advance-testing.png new file mode 100644 index 0000000..312e65e Binary files /dev/null and b/img/advance-testing.png differ diff --git a/img/checkout-master.png b/img/checkout-master.png new file mode 100644 index 0000000..06e9878 Binary files /dev/null and b/img/checkout-master.png differ diff --git a/img/commit-and-tree.png b/img/commit-and-tree.png new file mode 100644 index 0000000..3ddf1cd Binary files /dev/null and b/img/commit-and-tree.png differ diff --git a/img/commits-and-parents.png b/img/commits-and-parents.png new file mode 100644 index 0000000..d563972 Binary files /dev/null and b/img/commits-and-parents.png differ diff --git a/img/head-to-master.png b/img/head-to-master.png new file mode 100644 index 0000000..86c7ae8 Binary files /dev/null and b/img/head-to-master.png differ diff --git a/img/head-to-testing.png b/img/head-to-testing.png new file mode 100644 index 0000000..08352d6 Binary files /dev/null and b/img/head-to-testing.png differ diff --git a/img/two-branches.png b/img/two-branches.png new file mode 100644 index 0000000..aa6377a Binary files /dev/null and b/img/two-branches.png differ -- cgit v1.2.3