Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • rlacko/git-presentation
  • blintmester/git-presentation
2 results
Show changes
Commits on Source (4)
......@@ -13,13 +13,13 @@ home:
- cp .magic_ssh_config ~/.ssh/config
script:
# AFS magic incoming
- ssh rlacko@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/rlacko/.system/rlacko.keytab /tmp/rlacko.keytab
- ssh rlacko@centaur.sch.bme.hu kinit -k -t /tmp/rlacko.keytab rlacko
- ssh rlacko@centaur.sch.bme.hu rm /tmp/rlacko.keytab
- ssh rlacko@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
- ssh rlacko@centaur.sch.bme.hu mkdir -p /home/rlacko/public_html/git
- ssh blintmester@centaur.sch.bme.hu cp /afs/sch.bme.hu/home/blintmester/.system/blintmester.keytab /tmp/blintmester.keytab
- ssh blintmester@centaur.sch.bme.hu kinit -k -t /tmp/blintmester.keytab blintmester
- ssh blintmester@centaur.sch.bme.hu rm /tmp/blintmester.keytab
- ssh blintmester@centaur.sch.bme.hu aklog sch.bme.hu -k SCH.BME.HU
- ssh blintmester@centaur.sch.bme.hu mkdir -p /home/blintmester/public_html/git
# actual work
- scp -r $PWD/* rlacko@centaur.sch.bme.hu:/home/rlacko/public_html/git/
- scp -r $PWD/* blintmester@centaur.sch.bme.hu:/home/blintmester/public_html/git/
only:
refs:
- master
Sziasztok, `<insert name here>` vagyok!
Üdvözlök mindenkit. A videóban a gitről szeretnék mesélni nektek, és a végére remélem sikerül olyan szintű tudást átadnom, hogy a jövőben ne *nagyon* okozzon problémát a verziókezelés.
Olyan kérdésekre fogok választ adni, mint *"Miért kell git-et használnom?"*, *"Miért ilyen bonyolult ez az egész?"* és *"Mégis mi a francot nyerek ezzel?"*
Amire szükséged lesz: egy konzol, működő git-el (erre majd később visszatérek).
A parancsokat nem kötelező nektek is kiadni, de egész hasznos lesz, ha már csináltatok ilyet a gyakorlatra.
## Mi is az a verziókezelés?
(ide beszúrhatod a saját szövegedet, ha szeretnéd)
Biztos mindannyiótoknak van egy olyan élménye, hogy írt egy dokumentumot. Ezt elmentette, majd egy hét múlva újra írt bele, és szerette volna, hogy a korábbi munkája megmaradjon, vagy csak rögzíteni a különböző állapotokat.
Ezekből szoktak megszületni az itt látható mappák, fájlok.
(ide majd be fogok vágni egy képet, amin látszik a első.docx, első_v2.docx, etc...)
Természetesen ez lehetne egy használható megoldás, de mi van, ha szeretnénk valakivel ezt megosztani? Mi van ha a módosítás dátuma megváltozik közben? Hogyan biztosítjuk, hogy nem sérülnek a fájlok, és nem veszik el egy változata a munkánknak, amire lehet egy-két hét/hónap múlva mégiscsak vissza kell térjünk?
Erre adnak megoldást a különböző verziókezelő rendszerek. Ezeknek többek között dolguk, hogy számon tartsák a fájljainkat, ahogyan mi ezt kézzel megtettük.
### Helyi
Erre a fenti példa a legjobb példa.
Vannak különböző verziói a fájlunknak és ezeket valamilyen
adatbázisban rögzítjük.
(ide kép jön majd)
### Központosított
Ez már egy fokkal okosabb.
A különböző verziókat a központi szerverre rakjuk fel és
onnan szedjük le.
Például van egy Fájlszerverünk amit minden gépről elérnek
az emberek és oda dolgoznak közösen...
Érezhető probléma, hogy így ha meghal a központi szerver,
akkor mindent elvesztünk (eskü nem volt még ilyen 😅).
Továbbá probléma lehet, hogy egymás munkáját felülírjük,
szerencsére egy jó rendszernél erről értesítést kapunk,
hozzá és nem felülírjuk a módosításaink.
(ide kép jön majd)
### Megosztott
Na és itt lépünk be a ma is használt Git világába.
Ennél a megoldásnál már az a trükk, hogy mindenkinek megvan
a teljes projekt az összes verziójával. Felmerül, hogy na
de akkor honnan szedjük le a legújabb verziót?
Különböző megoldások léteznek, például a fejlesztők a
módosításokat azonnal megosztják egymással
(pl.: p2p Torrenthez hasonló módon) vagy
kijelölnek egy központi szervert amivel mindenki
szinkronban van.
Ilyen központi szerver lehet például a [Github](https://github.com/) vagy a [Gitlab](https://gitlab.com/).
Csak megjegyzem, akár a módosításokat emailben is el lehet
küldeni és a szoftver automatikusan megcsinálja a többit a mi részünkön.
## Git története
Még mielőtt belemerülnék a git telepítésébe, használatába,
szeretnék némi sztorizást is megejteni.
Annó a Linux kernel fejlesztése során okozott nagy fejtörést
az egész verziókezelés megoldása.
1991-től 2002-ig, tehát 11 éven át patchekben
(pl.: e-mailben elküldött szöveg a módosításokkal)
és tömörített fájlokban küldözgették a verziókat a fejlesztők.
Aztán 2002-től egy zárt licenszű verzió kezelőre, a
[BitKeeper](http://www.bitkeeper.org/)-re váltottak.
Ezt a Linux fejlesztői ingyen használhatták egészen 2005-ig,
mikorra annyira elromlott a kapcsolat a fejlesztők és a cég
között, hogy elvették tőlük a licenszt.
Az i-re a pontott az tette fel, mikor az egyik
kernel fejlesztő
[reverse engineer-elte](https://lwn.net/Articles/132938/)
a BitKeeper-t.
Ekkoriban
[Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds)
úgy döntött, hogy egy új megoldást kell találnia, mely
- gyors
- egyszerű
- támogatja a többszálú fejlesztést
- teljesen elosztott
- nagy projekteket is képes kezelni (pl.: Linux kernel)
Így hát megírta a [Git](https://en.wikipedia.org/wiki/Git)-et, mely a mai napig a legelterjedtebb, leggyorsabb és
legkényelmesebb verzió kezelő rendszer.
......@@ -8,10 +8,8 @@ hogy a jövőben ne okozzon problémát a verziókezelés.
Olyan kérdésekre fogok választ adni, mint "Miért kell
git-et használnom?", "Miért ilyen bonyolult ez az egész?"
és "Mégis mi a francot nyerek ezzel?".
Ja és előre is bocsi a helyesírási hibákért, várom majd
a javításokat a dokumentáció [git repo-jába](https://github.com/rlacko58/gitPresentation) :)
Amire szükséged lesz: Egy konzol működő git-el ([Workshop elején](workshop/1_installation.md)
Amire szükséged lesz: Egy konzol, működő git-el ([workshop elején](../workshop/1_installation.md)
van egy útmutató)
## Tippek
......@@ -24,18 +22,15 @@ belefektett munkát.
## Ki vagyok én?
Rafael László (Lackó), harmadéves mérnökinformatikus
szoftverjlesztő speces hallgató.
Jelenleg a DevTeam körvezetője, de a KSZK többi körében
is aktívan tevékenykedem.
Manapság főleg webfejlesztéssel foglalkozom,
olyan projekteken dolgoztam, mint az AdminSCH
vagy a KSZK Újonc weboldala.
Réthelyi Bálint (Blint), másod éves infós, jelenleg a reszortgazdaságis és kancellár, emellett lelkes szerversimogató és DevOps-os.
Van pár [DevTeam](https://git.sch.bme.hu/kszk/devteam)ben megtalálható projektem ([hőmérőSCH](https://git.sch.bme.hu/kszk/devteam/statusch/homerosch) és [becskasszáSCH](https://git.sch.bme.hu/kszk/devteam/becskasszasch)).
Ha bármi kérdésed merülne fel a doksi olvasása vagy az előadás
során nyugodtan keress meg
- Emailben: laszlo.rafael [kukac] kszk.bme.hu
- Emailben: rethelyi.balint [kukac] kszk.bme.hu
<div style="text-align:center"><img src="guide/intro/img/me.jpg" alt="Kép magamról" /></div>
Forrás: [Pro Git könyv](https://git-scm.com/book/en/v2/)
Forrás: [Pro Git könyv](https://git-scm.com/book/en/v2/)
Forrás2: [Rafael László (Lackó) git-es repója](https://git.sch.bme.hu/rlacko/git-presentation)
......@@ -5,10 +5,10 @@ Talán a legegyszerűbb egy példán keresztül szemléltetni.
Tegyük fel egy docx fájlt szerkesztünk és ezt hetente
frissítve rendszeresen el kell küldenünk emailben valakinek.
Ilyenkor különböző verziók keletkeznek a fájlból és ezeket
a postafiókunkból könnyedén előtudjuk szedni.
a postafiókunkból könnyedén elő tudjuk szedni.
Na ugyanazen a példán tovább mehetünk.
Mi van ha lokális kezdjük ezeket a fájlokat tárolni?
Na ugyanazen a példán tovább mehetünk.
Mi van ha lokális kezdjük ezeket a fájlokat tárolni?
Gondolom mindenki találkozott már hasonló fájlnevekkel:
```
......@@ -25,8 +25,8 @@ Gondolom mindenki találkozott már hasonló fájlnevekkel:
Ha ügyesek vagyunk még mappákat is készítünk és dátumot is hozzá cimkézünk.
```
└── 2020
└── 09
└── 2021
└── 02
├── 13
│ └── elso_beadasom.docx
├── 19
......@@ -54,33 +54,33 @@ kézileg tettük.
#### Helyi
Erre a fenti példa legjobb példa.
Erre a fenti példa a legjobb példa.
Vannak különböző verziói a fájlunknak és ezeket valamilyen
adatbázisban rögzítjük.
<div style="text-align:center"><img src="intro/img/vcstype_local.png" alt="Local Version Control Systems" /></div>
<div style="text-align:center"><img src="guide/intro/img/vcstype_local.png" alt="Local Version Control Systems" /></div>
Ilyen az [RCS](https://www.gnu.org/software/rcs/)
Ilyen az [RCS](https://www.gnu.org/software/rcs/).
### Központosított
Ez már egy fokkal okosabb.
A különböző verziókat a központi szerverre rakjuk fel és
onann szedjük le.
onnan szedjük le.
Például van egy Fájlszerverünk amit minden gépről elérnek
az emberek és oda dolgoznak közösen.
az emberek és oda dolgoznak közösen...
Érezhető probléma, hogy így ha meghal a központi szerver,
akkor mindent elvesztünk.
akkor mindent elvesztünk (eskü nem volt még ilyen 😅).
Továbbá probléma lehet, hogy egymás munkáját felülírjük,
szerencsére egy jó rendszernél erről értesítést kapunk,
hozzá és nem felülírjuk a módosításaink.
<div style="text-align:center"><img src="intro/img/vcstype_central.png" alt="Centralized Version Control Systems" /></div>
<div style="text-align:center"><img src="guide/intro/img/vcstype_central.png" alt="Centralized Version Control Systems" /></div>
### Megosztott
Na és itt lépünk be a ma is használt Git világába.
Ennél a megoldásnál már az a trükk, hogy mindenkinek meg van
Ennél a megoldásnál már az a trükk, hogy mindenkinek megvan
a teljes projekt az összes verziójával. Felmerül, hogy na
de akkor honnan szedjük le a legújabb verziót?
Különböző megoldások léteznek, például a fejlesztők a
......@@ -88,8 +88,8 @@ módosításokat azonnal megosztják egymással
(pl.: p2p Torrenthez hasonló módon) vagy
kijelölnek egy központi szervert amivel mindenki
szinkronban van.
Ilyen központi szerver lehet például a Github vagy a Gitlab.
Csak megjegyzem, de akár a módosításokat Emailben is ellehet
küldeni és a szoftver automatikusan megcsinálja a többi a mi részünkön.
Ilyen központi szerver lehet például a [Github](https://github.com/) vagy a [Gitlab](https://gitlab.com/).
Csak megjegyzem, akár a módosításokat emailben is el lehet
küldeni és a szoftver automatikusan megcsinálja a többit a mi részünkön.
<div style="text-align:center"><img src="intro/img/vcstype_distributed.png" alt="Distributed Version Control Systems" /></div>
<div style="text-align:center"><img src="guide/intro/img/vcstype_distributed.png" alt="Distributed Version Control Systems" /></div>
......@@ -14,7 +14,7 @@ Aztán 2002-től egy zárt licenszű verzió kezelőre, a
Ezt a Linux fejlesztői ingyen használhatták egészen 2005-ig,
mikorra annyira elromlott a kapcsolat a fejlesztők és a cég
között, hogy elvették tőlük a licenszt.
Az i-re a pontott az tette le, mikor az egyik
Az i-re a pontott az tette fel, mikor az egyik
kernel fejlesztő
[reverse engineer-elte](https://lwn.net/Articles/132938/)
a BitKeeper-t.
......@@ -22,11 +22,11 @@ Ekkoriban
[Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds)
úgy döntött, hogy egy új megoldást kell találnia, mely
- Gyors
- Egyszerű
- Támogatja a többszálú fejlesztést
- Teljesen elosztott
- Nagy projekteket is képes kezelni (pl.: Linux kernel)
- gyors
- egyszerű
- támogatja a többszálú fejlesztést
- teljesen elosztott
- nagy projekteket is képes kezelni (pl.: Linux kernel)
Így hát megírta a [Git-et](https://en.wikipedia.org/wiki/Git), mely a mai napig a legelterjedtebb, leggyorsabb és
legkényelmesebb verzió kezelő rendszerünk.
Így hát megírta a [Git](https://en.wikipedia.org/wiki/Git)-et, mely a mai napig a legelterjedtebb, leggyorsabb és
legkényelmesebb verzió kezelő rendszer.
guide/intro/img/me.jpg

58.2 KiB | W: 0px | H: 0px

guide/intro/img/me.jpg

6.2 MiB | W: 0px | H: 0px

guide/intro/img/me.jpg
guide/intro/img/me.jpg
guide/intro/img/me.jpg
guide/intro/img/me.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -50,7 +50,7 @@ Legegyszerűbben ezzel a paranccsal lehet a jelenlegi konfig
fájlok helyzetét kiírni:
`git config --list --show-origin`
Látható, hogy a konfigok valamilyen config fájlba menti
Látható, hogy a konfigokat valamilyen config fájlba menti,
a fájlrendszerben elszórva. Erről egy pár táblázat:
##### Windows
......@@ -79,8 +79,16 @@ Nálam a konfig a home mappámban például így néz ki:
```
$ cat ~/.gitconfig
[user]
email = rlacko99 [AT] gmail.com
name = Rafael László
name = Bálint Réthelyi
email = rethelyibalint@gmail.com
signingkey = 6EA0C1AC38C567DE
[core]
editor = nvim
autocrlf = input
[pull]
rebase = true
[commit]
gpgsign = true
```
### Állítsuk be a dolgokat magunknak
......@@ -116,12 +124,13 @@ Nézzük meg az összes beállításunk:
```
$ git config --list
user.email=rlacko99 [AT] gmail.com
user.name=Rafael László
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.name=Bálint Réthelyi
user.email=rethelyibalint@gmail.com
user.signingkey=6EA0C1AC38C567DE
core.editor=nvim
core.autocrlf=input
pull.rebase=true
commit.gpgsign=true
...
```
......@@ -129,5 +138,5 @@ Ha pedig csak egy adottat szeretnénk:
```
$ git config user.name
Rafael László
Bálint Réthelyi
```
......@@ -45,11 +45,11 @@ Tehát az a mappa, ahol van egy .git mappa, az egy git repo.
```
$ ls -al
total 20
drwxrwxr-x 4 rlacko rlacko 4096 okt 8 12:59 .
drwxrwxr-x 3 rlacko rlacko 4096 okt 7 12:04 ..
drwxrwxr-x 5 rlacko rlacko 4096 okt 7 12:46 docs
drwxrwxr-x 8 rlacko rlacko 4096 okt 8 16:39 .git
-rw-r--r-- 1 rlacko rlacko 17 okt 7 12:09 README.md
drwxrwxr-x 4 blint blint 4096 okt 8 12:59 .
drwxrwxr-x 3 blint blint 4096 okt 7 12:04 ..
drwxrwxr-x 5 blint blint 4096 okt 7 12:46 docs
drwxrwxr-x 8 blint blint 4096 okt 8 16:39 .git
-rw-r--r-- 1 blint rlacko 17 okt 7 12:09 README.md
```
......@@ -88,7 +88,17 @@ egy fa ága.
```
$ git init .
Initialized empty Git repository in .../projektem/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /home/blint/Projects/random codes/git_pres_working_dir/projektem/.git/
```
......@@ -97,9 +107,9 @@ Ha megnézzük, mostmár van egy .git mappánk
```
$ ls -al
total 12
drwxrwxr-x 3 rlacko rlacko 4096 okt 8 16:52 .
drwxrwxr-x 12 rlacko rlacko 4096 okt 8 16:49 ..
drwxrwxr-x 7 rlacko rlacko 4096 okt 8 16:52 .git
drwxr-xr-x 3 blint blint 4096 Mar 19 12:40 .
drwxr-xr-x 3 blint blint 4096 Mar 19 12:39 ..
drwxr-xr-x 7 blint blint 4096 Mar 19 12:40 .git
```
......@@ -136,9 +146,9 @@ majd a következő mentéskor pár bitet átírok, akkor már
2gb-nyi videó lesz a repóban és ha utána egy másik mentésel
ki is töröljük, az attól még megmarad.
Persze utólag tudunk olyat, hogy visszmegyünk és kitöröljük
az adott mentésből.
az adott mentésből (ezért nem jó ötlet git repo-ba 100 GB-os vm image-t felpush-olni, majd letörölni, hogy oops ez véletlen volt srácok).
Oké, tehát például mappákba bemásolja a mentéseinket valamilyen
Oké, tehát például a mappákba bemásolja a mentéseinket valamilyen
módon, de mégis hova?
```
......@@ -171,18 +181,18 @@ Hash-t láthatunk például a mentéspontjainkon, fájljainkon, stb.
Például itt egy ábra, hogy hogyan társítja a git egy
commit-hoz a megfelelő fájlokat egy kis pointer mágia keretében.
<div style="text-align:center"><img src="workshop/img/commit-and-tree.png" alt="Commit and Tree" /></div>
<div style="text-align:center"><img src="guide/workshop/img/commit-and-tree.png" alt="Commit and Tree" /></div>
Ennél jobban nem megyek bele a témába, de érdekes olvasmány.
#### Változtatások mentése
Hogyan néz ki egy mentés?
Hogyan néz ki egy mentés (a `git log`-al tudod megnézni)?
```
commit c45abc3d64c7840b4088b77d5a60d02198a78854
Author: Rafael László <rlacko99 [AT] gmail.com>
Date: Thu Oct 8 17:19:28 2020 +0200
commit e334ae2e8c4104429ff034152e622851a25c3a97
Author: blint <blintmester@sch.bme.hu>
Date: Thu Mar 18 15:37:54 2021 +0100
Készítettem egy gyümölcskosarat
```
......@@ -204,7 +214,7 @@ repo-ban.
Nézzük meg ezen az ábrán és egy példa projekten keresztül:
<div style="text-align:center"><img src="workshop/img/git_lifecycle.png" alt="Git Life cycle" /></div>
<div style="text-align:center"><img src="guide/workshop/img/git_lifecycle.png" alt="Git Life cycle" /></div>
Mi a jelenlegi helyzet a frissen inicializált repo-ban?
......@@ -246,10 +256,10 @@ nothing added to commit but untracked files present (use "git add" to track)
```
Ahhoz, hogy git alá helyezzük, a `git add <fájl>` parancsot
fogjuk kiadni.
fogjuk kiadni.
_Ezek a parancsok mind képesek rá, hogy
Unix-os módon több fájlra is kiadhatóak legyenek.
Például a `<fájl>` lehet `*.jpg`amivel minden .jpg fájlt kijelölünk a jelenlegi mappában"_ - Linux magic #02
Például a `<fájl>` lehet `*.jpg`amivel minden .jpg fájlt kijelölünk a jelenlegi mappában._ - Linux magic #02
```
$ git add gyumolcskosar
......@@ -339,7 +349,7 @@ no changes added to commit (use "git add" and/or "git commit -a")
Látható, hogy mostmár `modified` a fájlunk, mentsük is el,
de most picit másképp. A git és általában minden Unix
parancsnak áttudunk adni úgynevezett kapcsolókat.
parancsnak át tudunk adni úgynevezett kapcsolókat.
Például `git commit -m <message>`.
Ez annyit spórol meg nekünk, hogy nem kell szövegszerkesztőt
megnyitnia a git-nek mikor új commit-ot készítünk,
......@@ -349,8 +359,12 @@ hogy várjon egy szöveget, mint mentéshez kapcsolódó üzenet.
`-m: message, -a: all`, de tudunk hosszabb verziókat is
használni, mint `--message, --all`.
> Ne felejtsük el először stagelni a mentendő fájljaink egy
> `git add <fájl>` parancs kiadásával.
<Note type="warning" label="Megjegyzés">
Ne felejtsük el először stagelni a mentendő fájljaink egy
`git add <fájl>` parancs kiadásával.
</Note>
```
$ git add gyumolcskosar
......@@ -381,7 +395,19 @@ Láthatjuk, hogy a `jegyzeteim` fájl megjelent.
Most írjuk be a fájl nevét a `.gitignore`-ba.
```.gitignore
<Note type="tip" label="Tipp">
```shell-session
echo jegyzeteim.txt >> .gitingore
```
Itt a >> a hozzáfűzés miatt kell, hasznos ha nem írjuk felül az egész fájlt.
</Note>
`.gitignore`:
```
jegyzeteim.txt
```
......@@ -420,7 +446,7 @@ Látható, hogy az eredeti fájlt "töröltük" és egy új
fájlt vettünk fel a repo-ba. Érdekes, mi lenne ha stagelnénk
a változtatásokat `git add .` -al?
```
```shell-session
$ git add .
$ git status
On branch master
......@@ -442,27 +468,27 @@ A Git egyik legjobb parancsa a `git log` a `git status` után és
szeretném ha kipróbálnád.
```
commit 80560db1f5a83496b80f1959fbcbae2ccfff320e (HEAD -> master)
Author: Rafael László <rlacko99 [AT] gmail.com>
Date: Thu Oct 8 21:07:25 2020 +0200
commit 996698cf3273800680c351df950ebe1fbaf5182a (HEAD -> master)
Author: Bálint Réthelyi <rethelyibalint@gmail.com>
Date: Sat Mar 20 13:02:20 2021 +0100
jegyzeteim ignorálása
commit 30bf35d36399e484b03090570e13cb95da92ab8b
Author: Rafael László <rlacko99 [AT] gmail.com>
Date: Thu Oct 8 20:11:58 2020 +0200
commit 36552bc9400d94f399bd505a566178a4c83e8abd
Author: Bálint Réthelyi <rethelyibalint@gmail.com>
Date: Sat Mar 20 13:00:32 2021 +0100
Hoztunk egy hordót
Hoztunk egy hordót is
commit b677a8639193479157f7a576dffe0186b0dbe2c8
Author: Rafael László <rlacko99 [AT] gmail.com>
Date: Thu Oct 8 17:33:07 2020 +0200
commit a8a9b268e50a784fb2e3c0d7422d4d8ccd638b64
Author: Bálint Réthelyi <rethelyibalint@gmail.com>
Date: Sat Mar 20 12:59:32 2021 +0100
Raktam bele egy körtét
commit c45abc3d64c7840b4088b77d5a60d02198a78854
Author: Rafael László <rlacko99 [AT] gmail.com>
Date: Thu Oct 8 17:19:28 2020 +0200
commit 2a685fcd1e66b11805570869f8f49d5c5ef3bca1
Author: Bálint Réthelyi <rethelyibalint@gmail.com>
Date: Sat Mar 20 12:12:40 2021 +0100
Készítettem egy gyümölcskosarat
```
......@@ -475,10 +501,10 @@ Picit tegyük szebbé. Adjuk ki az előző parancsot a
`--oneline` kapcsolóval.
```
80560db (HEAD -> 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
996698c (HEAD -> master) jegyzeteim ignorálása
36552bc Hoztunk egy hordót is
a8a9b26 Raktam bele egy körtét
2a685fc Készítettem egy gyümölcskosarat
```
Máris csak a lényeget látjuk. Az is látható, hogy csak 7
......
......@@ -82,7 +82,7 @@ Mentsük el ide a módosításaink
```
$ 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
[atnevezes 07ac740] Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
1 file changed, 0 insertions(+), 0 deletions(-)
rename gyumolcskosar => gyumolcskosar.txt (100%)
```
......@@ -91,11 +91,11 @@ 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
* 07ac740 (HEAD -> atnevezes) Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
* 996698c (master) jegyzeteim ignorálása
* 36552bc Hoztunk egy hordót is
* a8a9b26 Raktam bele egy körtét
* 2a685fc Készítettem egy gyümölcskosarat
```
#### Hogy épül fel?
......@@ -104,7 +104,7 @@ 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>
<div style="text-align:center"><img src="guide/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
......@@ -113,7 +113,7 @@ 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>
<div style="text-align:center"><img src="guide/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.
......@@ -133,16 +133,16 @@ előtt átváltsunk a megfelelő ágra.
Még mielőtt vissza mennénk a master-re, nézzük meg milyen
fájljaink vannak az `ls -al` -el.
```
```shell-session
$ 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
drwxr-xr-x 3 blint blint 4096 Mar 20 13:02 .
drwxr-xr-x 3 blint blint 4096 Mar 19 12:39 ..
drwxr-xr-x 8 blint blint 4096 Mar 20 13:12 .git
-rw-r--r-- 1 blint blint 15 Mar 20 13:01 .gitignore
-rw-r--r-- 1 blint blint 11 Mar 20 12:58 gyumolcskosar.txt
-rw-r--r-- 1 blint blint 0 Mar 20 12:59 hordo
-rw-r--r-- 1 blint blint 0 Mar 20 13:01 jegyzeteim.txt
```
Egy pár extra adatot is kapunk, de nekünk most a
......@@ -151,23 +151,23 @@ Egy pár extra adatot is kapunk, de nekünk most a
Most gyerünk vissza a `master` ágra a `git checkout <ág neve>`
paranccsal.
```
```shell-session
$ git checkout master
Switched to branch 'master'
```
Most adjuk ismét ki az `ls -al` parancsot.
```
```shell-session
$ 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
drwxr-xr-x 3 blint blint 4096 Mar 20 13:16 .
drwxr-xr-x 3 blint blint 4096 Mar 19 12:39 ..
drwxr-xr-x 8 blint blint 4096 Mar 20 13:16 .git
-rw-r--r-- 1 blint blint 15 Mar 20 13:01 .gitignore
-rw-r--r-- 1 blint blint 11 Mar 20 13:16 gyumolcskosar
-rw-r--r-- 1 blint blint 0 Mar 20 12:59 hordo
-rw-r--r-- 1 blint blint 0 Mar 20 13:01 jegyzeteim.txt
```
Látható, hogy vissza léptünk arra az állapotra mikor még
......@@ -179,9 +179,9 @@ Ez elképesztően jó, ugyanis két teljesen külön álló munkát
Írjuk a `gyumolcskosar` fájl végére, hogy `szolo` és mentsük el
azzal az üzenettel, hogy `Tettem a kosaramba szőlőt`.
```
```shell-session
$ git commit -m "Tettem a kosaramba szőlőt"
[master 932cbeb] Tettem a kosaramba szőlőt
[master c8496bf] Tettem a kosaramba szőlőt
1 file changed, 1 insertion(+)
```
......@@ -191,9 +191,9 @@ 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
* c8496bf (HEAD -> master) Tettem a kosaramba szőlőt
* 996698c jegyzeteim ignorálása
* 36552bc Hoztunk egy hordót is
...
```
......@@ -205,34 +205,35 @@ 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
...
* c8496bf (HEAD -> master) Tettem a kosaramba szőlőt
| * 07ac740 (atnevezes) Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
|/
* 996698c jegyzeteim ignorálása
* 36552bc Hoztunk egy hordót is
* a8a9b26 Raktam bele egy körtét
* 2a685fc Készítettem egy gyümölcskosarat
```
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>
<div style="text-align:center"><img src="guide/workshop/img/tree_awesome.png" alt="Tree with one branch" /></div>
Menjünk vissza az `atnevezes` ágra és módosítsunk picit.
```
```shell-session
$ git checkout atnevezes
```
Majd pedig nevezzük át a `hordo`-t `hordo.txt`-re.
```
```shell-session
$ mv hordo hordo.txt
```
És ezt is mentsük el
```
```shell-session
$ git add .
$ git commit -m "Adtam kiterjesztést a hordónak"
```
......@@ -242,17 +243,20 @@ 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
* c040bc1 (HEAD -> atnevezes) Adtam kiterjesztést a hordónak
* 07ac740 Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
| * c8496bf (master) Tettem a kosaramba szőlőt
|/
* 996698c jegyzeteim ignorálása
* 36552bc Hoztunk egy hordót is
* a8a9b26 Raktam bele egy körtét
* 2a685fc Készítettem egy gyümölcskosarat
```
#### Mergelés
Az egyik legfontosabb dolog az ágak létrehozása után, hogy
betudjuk olvasztani az águnk valahova.
be tudjuk olvasztani az águnk valahova.
Az lenne a feladat, hogy a `master`-re beillesszük az
`atnevezes` ágon végzett módosításaink.
Ehhez a `git merge <branch neve>` parancsot használhatjuk.
......@@ -261,55 +265,58 @@ megpróbálja beolvasztani oda ahol épp a `HEAD` mutatónk van.
Gyerünk is át a `master` ágra.
```
```shell-session
$ git checkout master
Switched to branch 'master'
```
Ezután pedig mergeljük át a `master`-re az `atnevezes` ágat.
```
```shell-session
git merge atnevezes
```
Ekkor meg fog nyílni a szövegszerkesztőnk, ugyanis egy
új mentéspontot fogunk készíteni a `master águnkra`.
A feladott merge üzeneten nem kell módosítanünk, teljesen
új mentéspontot fogunk készíteni a `master` águnkra.
A feladott merge üzeneten nem kell módosítanunk, teljesen
jó úgy.
A merge lefut és láthatjuk mi is történt:
```
$ git merge atnevezes
Removing hordo
Merge made by the 'recursive' strategy.
gyumolcskosar => gyumolcskosar.txt | 0
hordo => hordo.txt | 0
2 files changed, 0 insertions(+), 0 deletions(-)
") Hozz\303\241adtam a txt kiterjeszt\303\251st a gy\303\274m\303\266lcskosar f\303\241jlhoz" | 248 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
gyumolcskosar => gyumolcskosar.txt | 0
hordo => hordo.txt | 0
3 files changed, 248 insertions(+)
create mode 100644 ") Hozz\303\241adtam a txt kiterjeszt\303\251st a gy\303\274m\303\266lcskosar f\303\241jlhoz"
rename gyumolcskosar => gyumolcskosar.txt (100%)
rename hordo => hordo.txt (100%)
rename hordo => hordo.tx (100%)
```
Most egy újabb `git log`-al ezt láthatjuk:
Most egy újabb `git log --graph --oneline --all`-al ezt láthatjuk:
```
* 366140d (HEAD -> master) Merge branch 'atnevezes'
|\
| * 9dcfc79 (atnevezes) Adtam kiterjesztést a hordónak
| * 7de1c94 Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
* | 15719cf Tettem a kosaramba szőlőt
|/
* 80560db jegyzeteim ignorálása
* 30bf35d Hoztunk egy hordót
* e4b5d9d (HEAD -> master) Merge branch 'atnevezes'
|\
| * c040bc1 (atnevezes) Adtam kiterjesztést a hordónak
| * 07ac740 Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
* | c8496bf Tettem a kosaramba szőlőt
|/
* 996698c jegyzeteim ignorálása
* 36552bc Hoztunk egy hordót is
* a8a9b26 Raktam bele egy körtét
* 2a685fc Készítettem egy gyümölcskosarat
```
Ez a bizonyos `merge commit` egyszerre mutat a két ág
tartalmára.
#### Merge conlict
#### Merge conflict
Mi van akkor ha ketten egyszerre ugyanazt változtatjuk?
Úgy döntöttünk, hogy pálinkát szeretnénk főzni józsival,
Úgy döntöttünk, hogy pálinkát szeretnénk főzni Rickel,
szóval a hordóba teszünk ízlés szerint valami
gyümölcsöt.
Gyerünk át a saját águnkra, de egy paranccsal.
......@@ -317,7 +324,7 @@ Ezt a `-b` kapcsolóval tudjuk
elérni a `git checkout` mellett.
```
$ git checkout -b lacko
$ git checkout -b blint
```
Most egy újabb `git branch` kiadásával már látható, hogy
......@@ -325,7 +332,7 @@ Most egy újabb `git branch` kiadásával már látható, hogy
```
atnevezes
* lacko
* blint
master
```
......@@ -342,13 +349,13 @@ Ezt mentsük is el, de most picit csaljunk és ne rakjuk
$ git commit -a -m "Raktam a hordóba körtét"
```
Úgy döntöttünk a szomszéd Józsi, hogy ugyanebbe a hordóba
körtét szeretne rakni. Menjünk át a master ágra és
Úgy döntött a szomszéd Rick, hogy ugyanebbe a hordóba
szilvát szeretne rakni. Menjünk át a master ágra és
tegyük meg ott.
Azt mondta a szomszéd, hogy szilvát szeretne beletenni, szóval:
```hordo.txt
Tehát:
`hordo.txt`:
```
szilva
```
......@@ -364,18 +371,17 @@ hogy mi a helyzet:
```
$ git log --graph --oneline --all
* 41f1c05 (HEAD -> master) Raktam szilvát a hordóba
| * 6d6d1ac (lacko) Raktam a hordóba körtét
|/
* 366140d Merge branch 'atnevezes'
|\
| * 9dcfc79 (atnevezes) Adtam kiterjesztést a hordónak
| * 7de1c94 Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
* | 15719cf Tettem a kosaramba szőlőt
|/
* 80560db jegyzeteim ignorálása
* 30bf35d Hoztunk egy hordót
...
* 85744ad (HEAD -> master) Raktam szilvát a hordóba
* e4b5d9d (blint) Merge branch 'atnevezes'
|\
| * c040bc1 (atnevezes) Adtam kiterjesztést a hordónak
| * 07ac740 Hozzáadtam a txt kiterjesztést a gyümölcskosar fájlhoz
* | c8496bf Tettem a kosaramba szőlőt
|/
* 996698c jegyzeteim ignorálása
* 36552bc Hoztunk egy hordót is
* a8a9b26 Raktam bele egy körtét
* 2a685fc Készítettem egy gyümölcskosarat
```
Na és akkor most mergeljünk be a master-re a módosításaink.
......
......@@ -40,7 +40,7 @@
},
{
title: 'GitSCH',
link: 'https://git.sch.bme.hu/rlacko/git-presentation',
link: 'https://git.sch.bme.hu/blintmester/git-presentation',
},
],
sidebar: [
......