diff --git a/docs/workshop/3_branch.md b/docs/workshop/3_branch.md
index 123a358edbf6a059ae9ff1bbf3b26ecb34810978..b34f296ecde9b4598bc802fdef51eb461998f920 100644
--- a/docs/workshop/3_branch.md
+++ b/docs/workshop/3_branch.md
@@ -1,3 +1,252 @@
 # Branch-ek, elĂĄgazĂĄs
 
+#### Mik azok a branch-ek?
+
+Talán legegyszerűbb, ha előbb készítünk egyet.
+
+Az előző témakörben átneveztünk egy fájlt, de
+nem commitoltuk el.
+Ezt ne tegyĂźk meg, hanem kĂŠszĂ­tsĂźnk egy ĂĄgat onnan,
+ahol jĂĄrtunk mondjuk azzal a nĂŠvvel, hogy `atnevezes`.
+
+Először nézzük meg, mi a helyzet jelenleg a
+`git status` paranccsal.
+
+```
+$ git status
+On branch master
+Changes to be committed:
+  (use "git restore --staged <file>..." to unstage)
+	renamed:    gyumolcskosar -> gyumolcskosar.txt
+```
+
+LĂĄthatĂł, hogy a `master` nevĹą ĂĄgon vagyunk.
+Ezt képzeljük el úgy, mint egy fa törzse, melyből
+le ĂĄgazunk.
+NĂŠzzĂźk meg jelenleg milyen branch-ek vannak a repo-nkban
+a `git branch` paranccsal.
+
+```
+$ git branch
+
+* master
+```
+
+LĂĄthatĂł, hogy mĂŠg csak egy van.
+Ha a `git branch <Ăşj branch neve>` parancsot kiadjuk, akkor
+kĂŠszĂźl egy Ăşj ĂĄg, de arra figyeljĂźnk, hogy ilyenkor mĂŠg nem
+megyĂźnk ĂĄt rĂĄ.
+NĂŠzzĂźk is meg, hogy tĂŠnyleg elkĂŠszĂźlt a `git branch` paranccsal.
+
+```
+$ git branch
+
+  atnevezes
+* master
+```
+
+Itt a `*` azt jelĂśli, hogy melyiken vagyunk jelenleg.
+Ha kiadnĂĄnk a `git status` parancsot, akkor is lĂĄthatnĂĄnk
+melyik ĂĄgon vagyunk.
+
+GyerĂźnk ĂĄt az Ăşj ĂĄgra.
+Ehhez a `git checkout <ĂĄg neve>` parancsot tudjuk hasznĂĄlni.
+
+```
+$ git checkout atnevezes
+D	gyumolcskosar
+A	gyumolcskosar.txt
+Switched to branch 'atnevezes'
+```
+
+Itt azt is lĂĄtjuk azonnal, hogy a mĂłdosĂ­tĂĄsainkkal nem tĂśrtĂŠnt
+semmi.
+Ezek jelenleg még `staged`-be vannak és ha elmentjük őket
+a commital, akkor az ĂŠpp jelenlegi ĂĄgra fogja
+beilleszteni őket.
+
+NĂŠzzĂźk meg `git status`-al, hogy mi a helyzet.
+
+```
+$ git status
+On branch atnevezes
+Changes to be committed:
+  (use "git restore --staged <file>..." to unstage)
+	renamed:    gyumolcskosar -> gyumolcskosar.txt
+```
+
+LĂĄtszik is, hogy az `atnevezes` ĂĄgon vagyunk.
+MentsĂźk el ide a mĂłdosĂ­tĂĄsaink  
+`HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz`  
+Ăźzenettel
+
+```
+$ git commit -m "HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz"
+[atnevezes 7de1c94] HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+ rename gyumolcskosar => gyumolcskosar.txt (100%)
+```
+
+Ezt követően ha kiadjuk a `git log --graph --oneline` parancsot, akkor
+meg is lĂĄthatjuk a jelenlegi helyzetet a mi fĂĄnkban:
+
+```
+* 7de1c94 (HEAD -> atnevezes) HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz
+* 80560db (master) jegyzeteim ignorĂĄlĂĄsa
+* 30bf35d Hoztunk egy hordĂłt
+* b677a86 Raktam bele egy kĂśrtĂŠt
+* c45abc3 KĂŠszĂ­tettem egy gyĂźmĂślcskosarat
+```
+
+#### Hogy ĂŠpĂźl fel?
+
+Először is, ahhoz hogy tudja a git melyik mentéspont után
+melyik jĂśn, mutatĂłkat hasznĂĄl ehhez az ĂĄbrĂĄhoz
+hasonlĂł mĂłdon:
+
+<div style="text-align:center"><img src="workshop/img/commits-and-parents.png" alt="Commits and parents" /></div>
+
+A mentéspontjaink az előzőre mutatnak.
+Ahogy láthattuk az előző fejezetben, a mentéspontok pedig
+mutatnak a megfelelő fájlokra amiket épp módosítottunk.
+
+VizsgĂĄljuk meg a jelenlegi repo-nkat, hogy pontosan
+mi merre is van.
+
+<div style="text-align:center"><img src="workshop/img/tree_with_one_branch.png" alt="Tree with one branch" /></div>
+
+A mentéspontok képesek mutatni az előzőre, ezt láthatjuk
+az ĂĄbrĂĄn.
+TovĂĄbbĂĄ azt is lĂĄtjuk, hogy van mĂŠg 3 pointerĂźnk.
+Az egyik `master`, ez az ami a legfrissebb mentĂŠsre
+mutat a master ĂĄgon.
+Ugyanez igaz az `atnevezes` ĂĄg esetĂŠben, de oda mĂŠg mutat
+egy `HEAD` mutatĂł is.
+Ez az a mutatĂł ami azt jelzi, hogy hol vagyunk mi jelenleg.
+Mikor egy Ăşj mentĂŠst hozunk lĂŠtre, akkor az a mentĂŠs ide
+fog mutatni.
+Ezért is kellett figyelni az előzőnél, hogy mentés
+előtt átváltsunk a megfelelő ágra.
+
+#### Ágak kÜzti mozgås
+
+Még mielőtt vissza mennénk a master-re, nézzük meg milyen
+fĂĄjljaink vannak az `ls -al` -el.
+
+```
+$ ls -al
+total 20
+drwxrwxr-x  3 rlacko rlacko 4096 okt    8 21:07 .
+drwxrwxr-x 12 rlacko rlacko 4096 okt    8 16:49 ..
+drwxrwxr-x  8 rlacko rlacko 4096 okt    9 15:01 .git
+-rw-rw-r--  1 rlacko rlacko   15 okt    8 20:43 .gitignore
+-rw-rw-r--  1 rlacko rlacko   11 okt    8 17:29 gyumolcskosar.txt
+-rw-rw-r--  1 rlacko rlacko    0 okt    8 20:09 hordo
+-rw-rw-r--  1 rlacko rlacko    0 okt    8 20:42 jegyzeteim.txt
+```
+
+Egy pĂĄr extra adatot is kapunk, de nekĂźnk most a
+`gyumolcskosar.txt` a lĂŠnyeges.
+
+Most gyerĂźnk vissza a `master` ĂĄgra a `git checkout <ĂĄg neve>`
+paranccsal.
+
+```
+$ git checkout master
+Switched to branch 'master'
+```
+
+Most adjuk ismĂŠt ki az `ls -al` parancsot.
+
+```
+$ ls -al
+total 20
+drwxrwxr-x  3 rlacko rlacko 4096 okt    9 15:24 .
+drwxrwxr-x 12 rlacko rlacko 4096 okt    8 16:49 ..
+drwxrwxr-x  8 rlacko rlacko 4096 okt    9 15:24 .git
+-rw-rw-r--  1 rlacko rlacko   15 okt    8 20:43 .gitignore
+-rw-rw-r--  1 rlacko rlacko   11 okt    9 15:24 gyumolcskosar
+-rw-rw-r--  1 rlacko rlacko    0 okt    8 20:09 hordo
+-rw-rw-r--  1 rlacko rlacko    0 okt    8 20:42 jegyzeteim.txt
+```
+
+LĂĄthatĂł, hogy vissza lĂŠptĂźnk arra az ĂĄllapotra mikor mĂŠg
+nem vĂĄltoztattunk rajta.
+
+Ez elképesztően jó, ugyanis két teljesen külön álló munkát
+Ă­gy elkĂźlĂśnĂ­tĂśttĂźnk egymĂĄstĂłl!
+
+Írjuk a `gyumolcskosar` fájl végére, hogy `szolo` és mentsük el
+azzal az üzenettel, hogy `Tettem a kosaramba szőlőt`.
+
+```
+$ git commit -m "Tettem a kosaramba szőlőt"
+[master 932cbeb] Tettem a kosaramba szőlőt
+ 1 file changed, 1 insertion(+)
+```
+
+Most Ăşjra kiadva a `git log --graph --oneline` parancsot,
+mĂĄr ĂŠrdekesebb eredmĂŠnyt lĂĄthatunk.
+
+```
+$ git log --graph --oneline
+
+* 15719cf (HEAD -> master) Tettem a kosaramba szőlőt
+* 80560db jegyzeteim ignorĂĄlĂĄsa
+* 30bf35d Hoztunk egy hordĂłt
+...
+```
+
+MĂŠgis hova tĂźnt a mĂĄsik ĂĄgunk?
+A git nem fogja alapbĂłl jelezni nekĂźnk azt amit nem lĂĄt
+a jelenlegi mentéstől vissza menve.
+Hogy lĂĄssuk a mĂĄsik ĂĄgat is, tegyĂźk hozzĂĄ a `--all` kapcsolĂłt.
+
+```
+$ git log --graph --oneline --all
+
+* 15719cf (HEAD -> master) Tettem a kosaramba szőlőt
+| * 7de1c94 (atnevezes) HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz
+|/
+* 80560db jegyzeteim ignorĂĄlĂĄsa
+* 30bf35d Hoztunk egy hordĂłt
+...
+```
+
+Na Ă­gy mĂĄr lĂĄtjuk a mĂĄsik ĂĄgat is.
+MĂŠg vizuĂĄlisabban jelenleg Ă­gy ĂĄllunk:
+
+<div style="text-align:center"><img src="workshop/img/tree_awesome.png" alt="Tree with one branch" /></div>
+
+MenjĂźnk vissza az `atnevezes` ĂĄgra ĂŠs mĂłdosĂ­tsunk picit.
+
+```
+$ git checkout atnevezes
+```
+
+Majd pedig nevezzĂźk ĂĄt a `hordo`-t `hordo.txt`-re.
+
+```
+$ mv hordo hordo.txt
+```
+
+És ezt is mentsük el
+
+```
+$ git add .
+$ git commit -m "Adtam kiterjesztĂŠst a hordĂłnak"
+```
+
+Egy ismĂŠtelt `git log`-al lĂĄthatjuk is a fĂĄnkat.
+
+```
+$ git log --graph --oneline --all
+
+* 9dcfc79 (HEAD -> atnevezes) Adtam kiterjesztĂŠst a hordĂłnak
+* 7de1c94 HozzĂĄadtam a txt kiterjesztĂŠst a gyĂźmĂślcskosar fĂĄjlhoz
+| * 15719cf (master) Tettem a kosaramba szőlőt
+|/
+* 80560db jegyzeteim ignorĂĄlĂĄsa
+```
+
 [Előző](workshop/2_basics) | [Következő](remote/1_basics)
diff --git a/docs/workshop/img/commit-and-tree.png b/docs/workshop/img/commit-and-tree.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ddf1cd5f9c1c29b1d2a09ebc78e4c8e3d2a70ee
Binary files /dev/null and b/docs/workshop/img/commit-and-tree.png differ
diff --git a/docs/workshop/img/commits-and-parents.png b/docs/workshop/img/commits-and-parents.png
new file mode 100644
index 0000000000000000000000000000000000000000..d563972662bf2c253a6e8e4650e73989c1860d02
Binary files /dev/null and b/docs/workshop/img/commits-and-parents.png differ
diff --git a/docs/workshop/img/tree_awesome.png b/docs/workshop/img/tree_awesome.png
new file mode 100644
index 0000000000000000000000000000000000000000..caf009c581557a36deb64db61c16812cecd6a604
Binary files /dev/null and b/docs/workshop/img/tree_awesome.png differ
diff --git a/docs/workshop/img/tree_with_one_branch.png b/docs/workshop/img/tree_with_one_branch.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fcaf811ca46d67b559de248f97b04f22477f0e9
Binary files /dev/null and b/docs/workshop/img/tree_with_one_branch.png differ