summaryrefslogtreecommitdiff
path: root/2.md
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2022-05-31 13:05:18 +0200
committerEkaitz Zarraga <ekaitz@elenq.tech>2022-05-31 13:05:18 +0200
commit5f58d45d4bcb3e9b4043bfa8b17c50e1e46245e4 (patch)
tree3106b74a3045c7707ce9ed8384a30a415f59bac3 /2.md
parentc994601cb034436c58177013b9466d4fcf2efff9 (diff)
reset and checkout
Diffstat (limited to '2.md')
-rw-r--r--2.md112
1 files changed, 111 insertions, 1 deletions
diff --git a/2.md b/2.md
index 48220fa..f3f3583 100644
--- a/2.md
+++ b/2.md
@@ -275,40 +275,150 @@ trantsizioak ondo ulertu behar dira. Hiru egoera posible daude:
## Reset eta checkout sakonki — III
+Grafikoki aztertuz. Repositorio hutsarekin hasita:
+
![&nbsp;](img/reset-ex1.png)
## Reset eta checkout sakonki — IV
+Fitxategi bat *indexera* gehitu:
+
![&nbsp;](img/reset-ex2.png)
## Reset eta checkout sakonki — V
+Fitxategia repositorioan idatzi:
+
![&nbsp;](img/reset-ex3.png)
## Reset eta checkout sakonki — VI
+Fitxategia aldatu:
+
![&nbsp;](img/reset-ex4.png)
## Reset eta checkout sakonki — VII
+Aldaketak *indexera* bidali:
+
![&nbsp;](img/reset-ex5.png)
## Reset eta checkout sakonki — VIII
+Commit berria gehitu:
+
![&nbsp;](img/reset-ex6.png)
## Reset eta checkout sakonki — IX
-![Commit gehiago gehituta](img/reset-start.png)
+Beste commit bat gehituta:
+
+![&nbsp;](img/reset-start.png)
## Reset eta checkout sakonki — IX
+`--soft`:
+
![&nbsp;](img/reset-soft.png)
## Reset eta checkout sakonki — X
+`--mixed` (defektuz egiten da):
+
![&nbsp;](img/reset-mixed.png)
## Reset eta checkout sakonki — XI
+`--hard`:
+
![&nbsp;](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:
+
+![&nbsp;](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`).
+
+![&nbsp;](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:
+
+![&nbsp;](img/reset-squash-r1.png)
+
+## Reset eta checkout sakonki — XVII
+
+HEADa mugitu aldaketak indexean mantenduz:
+
+![&nbsp;](img/reset-squash-r2.png)
+
+## Reset eta checkout sakonki — XIX
+
+Commit berria sartu aldaketa guztiekin batera eginda
+
+![&nbsp;](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:
+
+![&nbsp;](img/reset-checkout.png)
+
+
+
+## Merge aurreratuak — I