diff options
author | Ekaitz Zarraga <ekaitz@elenq.tech> | 2022-05-31 13:05:18 +0200 |
---|---|---|
committer | Ekaitz Zarraga <ekaitz@elenq.tech> | 2022-05-31 13:05:18 +0200 |
commit | 5f58d45d4bcb3e9b4043bfa8b17c50e1e46245e4 (patch) | |
tree | 3106b74a3045c7707ce9ed8384a30a415f59bac3 | |
parent | c994601cb034436c58177013b9466d4fcf2efff9 (diff) |
reset and checkout
-rw-r--r-- | 2.md | 112 | ||||
-rw-r--r-- | img/reset-checkout.png | bin | 0 -> 21688 bytes | |||
-rw-r--r-- | img/reset-path1.png | bin | 0 -> 22139 bytes | |||
-rw-r--r-- | img/reset-path3.png | bin | 0 -> 28329 bytes | |||
-rw-r--r-- | img/reset-squash-r1.png | bin | 0 -> 27899 bytes | |||
-rw-r--r-- | img/reset-squash-r2.png | bin | 0 -> 29823 bytes | |||
-rw-r--r-- | img/reset-squash-r3.png | bin | 0 -> 30022 bytes | |||
-rw-r--r-- | img/reset-squash-r4.png | 0 |
8 files changed, 111 insertions, 1 deletions
@@ -275,40 +275,150 @@ trantsizioak ondo ulertu behar dira. Hiru egoera posible daude: ## Reset eta checkout sakonki — III +Grafikoki aztertuz. Repositorio hutsarekin hasita: + ![ ](img/reset-ex1.png) ## Reset eta checkout sakonki — IV +Fitxategi bat *indexera* gehitu: + ![ ](img/reset-ex2.png) ## Reset eta checkout sakonki — V +Fitxategia repositorioan idatzi: + ![ ](img/reset-ex3.png) ## Reset eta checkout sakonki — VI +Fitxategia aldatu: + ![ ](img/reset-ex4.png) ## Reset eta checkout sakonki — VII +Aldaketak *indexera* bidali: + ![ ](img/reset-ex5.png) ## Reset eta checkout sakonki — VIII +Commit berria gehitu: + ![ ](img/reset-ex6.png) ## Reset eta checkout sakonki — IX -![Commit gehiago gehituta](img/reset-start.png) +Beste commit bat gehituta: + +![ ](img/reset-start.png) ## Reset eta checkout sakonki — IX +`--soft`: + ![ ](img/reset-soft.png) ## Reset eta checkout sakonki — X +`--mixed` (defektuz egiten da): + ![ ](img/reset-mixed.png) ## Reset eta checkout sakonki — XI +`--hard`: + ![ ](img/reset-hard.png) + +## Reset eta checkout sakonki — XII + +Hiru aukeraz aparte, `git reset`-i fitxategi bat sartu ahal zaio. + +Kasu horretan, lehenengo pausua (HEAD-a mugitzea) ezin da burutu[^head] baina +hurrengo pausuak arazo barik egin daitezke. Horrek funtzionamendu +interesgarriak ahalbidetzen ditu. + +- `git reset <fitxategia>` egiten denean, benetan + `git reset --mixed HEAD <fitxategia>` egiten da. + 1. ~~HEAD-a mugitu~~ + 2. Aldaketak indexean jarri + + Hau da: **Fitxategia indexetik atera** + +[^head]: HEADa ezin da erdizka mugitu, edo repositorio osorako mugitzen da edo + ez da mugitzen. + +## Reset eta checkout sakonki — XIII + +Grafikoki: + +![ ](img/reset-path1.png) + + +## Reset eta checkout sakonki — XIV + +Adibide konplexuago bat: `git reset <commit> -- <file>` + +1. HEAD-a ezin da mugitu +2. `<file>`-k `<commit>`-en daukan egoera indexera sartzen da (`--mixed`). + +![ ](img/reset-path3.png){height=220px} + + +## Reset eta checkout sakonki — XV + +Ikusitakoa *squash* (commit batzuk bakarrean batu) egiteko erabili +daiteke[^rebase-interactive]. + +- `git reset --soft HEAD~<N>` egitean HEADa atzera eraman daiteke, indexean + aldaketak mantenduz. `git commit` eginda, aldaketak repositorioan idatzi + daitezke, denak **commit bakarrean**. + +[^rebase-interactive]: Beste aukera `git rebase --interactive|-i` erabiltzea da + +## Reset eta checkout sakonki — XVI + +Grafikoki: + +![ ](img/reset-squash-r1.png) + +## Reset eta checkout sakonki — XVII + +HEADa mugitu aldaketak indexean mantenduz: + +![ ](img/reset-squash-r2.png) + +## Reset eta checkout sakonki — XIX + +Commit berria sartu aldaketa guztiekin batera eginda + +![ ](img/reset-squash-r3.png) + +## Reset eta checkout sakonki — XX + +`checkout` eta `reset` antzekoak dira, baina ez dira berdinak: + +- `git checkout`-ek ez du HEADa eraldatzen. HEAD erreferentzia non apuntatzen + duen aldatzen du, ez du azpian dagoen adarra aldatzen. + +- `git checkout <branch>` eta `git reset --hard <branch>` ia berdinak dira + baina `checkout`ek ez ditu aldaketak zuzenean zapaltzen. + +- `git checkout <fitxategia>` fitxategian zeuden aldaketak **zapaltzen ditu** + *working directory*an, `git reset --hard`en antzera. KONTUZ + +Bietan `--patch` erabili daiteke zatika egiteko. + + +## Reset eta checkout sakonki — XXI + +`git checkout` vs `git reset`en efektua HEADan: + +![ ](img/reset-checkout.png) + + + +## Merge aurreratuak — I diff --git a/img/reset-checkout.png b/img/reset-checkout.png Binary files differnew file mode 100644 index 0000000..fe03634 --- /dev/null +++ b/img/reset-checkout.png diff --git a/img/reset-path1.png b/img/reset-path1.png Binary files differnew file mode 100644 index 0000000..1672e02 --- /dev/null +++ b/img/reset-path1.png diff --git a/img/reset-path3.png b/img/reset-path3.png Binary files differnew file mode 100644 index 0000000..e01f80a --- /dev/null +++ b/img/reset-path3.png diff --git a/img/reset-squash-r1.png b/img/reset-squash-r1.png Binary files differnew file mode 100644 index 0000000..e703a30 --- /dev/null +++ b/img/reset-squash-r1.png diff --git a/img/reset-squash-r2.png b/img/reset-squash-r2.png Binary files differnew file mode 100644 index 0000000..8b3bd44 --- /dev/null +++ b/img/reset-squash-r2.png diff --git a/img/reset-squash-r3.png b/img/reset-squash-r3.png Binary files differnew file mode 100644 index 0000000..87e44cb --- /dev/null +++ b/img/reset-squash-r3.png diff --git a/img/reset-squash-r4.png b/img/reset-squash-r4.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/img/reset-squash-r4.png |